본문 바로가기
Algorithm 🧑🏻‍💻/CodeUp

1485 : 2차원 배열 달팽이(2)

by 안주형 2022. 3. 14.

문제

 

[기초-배열연습] 2차원 배열 달팽이 채우기 4-2

다음과 같은 n*m 배열 구조를 출력해보자. 입력이 3 4인 경우 다음과 같이 출력한다. 12 11 10 9 3 2 1 8 4 5 6 7 입력이 4 5인 경우는 다음과 같이 출력한다. 20 19 18 17 16 7 6 5 4 15 8 1 2 3 14 9 10 11 12 13 입력이

codeup.kr

 

코드

#include <iostream>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int n,m; cin>>n>>m;
    
    int left_right_cnt = m, up_down_cnt = n-1;
    int arr[101][101] = {0, };
    int num = n*m;
    int x=0, y=0;
    
    for(int i=0; i<n*m; i++){
        if(arr[x][y]!=0) break;
        switch(i%4){
            case 0: //오른쪽 방향
                for(int k=0; k<left_right_cnt; k++){
                    arr[x][y] = num;
                    num--;
                    y++;
                }
                y--;
                x++;
                left_right_cnt--;
                break;
                
            case 1: //아래쪽 방향
                for(int k=0; k<up_down_cnt; k++){
                    arr[x][y] = num;
                    num--;
                    x++;
                }
                x--;
                y--;
                up_down_cnt--;
                break;
                
            case 2: //왼쪽 방향
                for(int k=0; k<left_right_cnt; k++){
                    arr[x][y] = num;
                    num--;
                    y--;
                }
                y++;
                x--;
                left_right_cnt--;
                break;
                
            case 3: //위쪽 방향
                for(int k=0; k<up_down_cnt; k++){
                    arr[x][y] = num;
                    num--;
                    x--;
                }
                x++;
                y++;
                up_down_cnt--;
                break;
        }
    }
    for(int i=0; i<n; i++){
        for(int k=0; k<m; k++){
            cout<<arr[i][k]<<' ';
        }
        cout<<'\n';
    }
}

 

풀이(10분)

달팽이를 박살내고있습니다.

 

1484 : 2차원 배열 달팽이(1)

문제 [기초-배열연습] 2차원 배열 달팽이 채우기 4-1 다음과 같은 n*m 배열 구조를 출력해보자. 입력이 3 4인 경우 다음과 같이 출력한다. 1 2 3 4 10 11 12 5 9 8 7 6 입력이 4 5인 경우는 다음과 같이 출력

dkswnkk.tistory.com

 

'Algorithm 🧑🏻‍💻 > CodeUp' 카테고리의 다른 글

1484 : 2차원 배열 달팽이(1)  (0) 2022.03.14
3510 : 예산 관리  (0) 2022.01.16
3701 : 파스칼 삼각형  (0) 2022.01.16
1510 : 홀수 마방진  (0) 2022.01.16
4503 : 바이러스  (0) 2022.01.14
3705 : 연속된 구간의 최대합  (0) 2022.01.14

댓글