본문 바로가기
Project/Algorithm

[알고리즘] 달팽이 알고리즘

by 도낙원 2017. 8. 4.
반응형


어제 백준 알고리즘 1022번 문제를 풀다가 


달팽이 알고리즘의 응용 버전 같은 느낌이여서 


한번 나도 짜봤습니다.


달팽이 알고리즘은 말 그대로 숫자를 달팽이 모양으로 출력하는 것을 말합니다.



<달팽이 알고리즘>



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
public class Main {
 
    public static void main(String[] args) {
        int[][] data = new int[50][50];
 
        int x = -1;
        int y = 0;
        int count = 1;
        int size = 5;
        int type = 0;
        while (size > 0) {
            for (int i = 0; i < size; i++) {
                switch (type) {
                case 0: // RIGHT
                    x++;
                    break;
                case 1: // DOWN
                    y++;
                    break;
                case 2: // LEFT
                    x--;
                    break;
                case 3: // UP
                    y--;
                    break;
                }
                data[y][x] = count;
                count++;
            }
            if (type == || type == 2)
                size--;
            type++;
            if (type > 3)
                type = 0;
        }
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                if (data[i][j] < 10)
                    System.out.print(" " + data[i][j] + " ");
                else
                    System.out.print(data[i][j] + " ");
            }
            System.out.println();
        }
    }
}
cs


이렇게 코딩을 했습니다.


백준 1022번은 이걸 이용하여 풀려고 하는데 잘 안되고 있습니다.


조만간 1022번을 풀어서 올리도록 하겠습니다.


반응형
사업자 정보 표시
난길샵 | 박현숙 | 경상북도 성주군 월항면 수죽길 98길 | 사업자 등록번호 : 256-07-01668 | TEL : 010-9909-8420 | Mail : skr04@naver.com | 통신판매신고번호 : 제2020-경북성주-52호 | 사이버몰의 이용약관 바로가기

댓글