[백준/23291/Java] 어항 정리_안간단 풀이

Jake·2022년 3월 8일
0

PS

목록 보기
8/14

1. 문제 이해

구현/시뮬레이션 문제입니다

2. 문제 해석

어항을 정리하는 매커니즘에 대한 감을 한 번 잡으면 구현 자체는 크게 어렵지 않은 문제입니다.
N도 4의 배수로 주어져서 예외 처리 해야 할 테케도 거의 없습니다.

3. 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import static java.lang.Integer.*;
import static java.lang.System.in;

public class Main {
    static int n, k;
    static int[][] board;
    static int[] dx = {-1, 0, 1, 0};
    static int[] dy = {0, 1, 0, -1};

    public static void main(String[] args) throws IOException {
        init();

        int count = 0;
        while(maxDiffLargerThan(k)) {
            count++;
            addFish();
            firstFold();
            spread();
            unFold();
            secondFold();
            spread();
            unFold();
        }

        System.out.println(count);
    }

    public static boolean maxDiffLargerThan(int k) {
        int minFish = MAX_VALUE;
        int maxFish = MIN_VALUE;

        for (int i = 0; i < n; i++) {
            minFish = min(minFish, board[i][0]);
            maxFish = max(maxFish, board[i][0]);
        }

        if(maxFish - minFish > k) return true;
        else return false;
    }


    public static void addFish() {
        int minFish = MAX_VALUE;
        for(int i = 0; i < n; i++)
            minFish = min(minFish, board[i][0]);

        for (int i = 0; i < n; i++) {
            if (board[i][0] == minFish)
                board[i][0]++;
        }
    }


    public static void firstFold() {
        int startX = 0;
        int vert = 1;
        int hori = 1;
        while (startX + vert + hori <= n) {
            for (int i = vert-1; i >= 0; i--) {
                for (int j = 0; j < hori; j++) {
                    int nx = startX + vert + j;
                    int ny = vert - i;
                    board[nx][ny] = board[startX + i][j];
                    board[startX + i][j] = 0;
                }
            }
            startX += vert;
            if (vert == hori) hori++;
            else vert++;
        }
    }

    public static void spread() {
        int[][] save = new int[n][25];
        boolean[][] visited = new boolean[n][25];

        for (int x = 0; x < n; x++) {
            for (int y = 0; y < 25; y++) {
                visited[x][y] = true;
                if(board[x][y] == 0) continue;

                for (int dir = 0; dir < 4; dir++) {
                    int nx = x + dx[dir];
                    int ny = y + dy[dir];
                    if(valid(nx, ny) && !visited[nx][ny] && board[nx][ny] != 0) {
                        int diff = (board[x][y] - board[nx][ny])/5;
                        if(Math.abs(diff) >= 1) {
                            save[x][y] -= diff;
                            save[nx][ny] += diff;
                        }
                    }
                }
            }
        }

        for (int x = 0; x < n; x++) {
            for (int y = 0; y < 25; y++) {
                board[x][y] += save[x][y];
            }
        }
    }


    public static void unFold() {
        int x = 0;
        while(board[x][0] == 0) x++;

        int index = 0;
        int[] save = new int[n];
        for (int i = x; i < n; i++) {
            for (int j = 0; j < 25; j++) {
                if(board[i][j] == 0) break;
                save[index++] = board[i][j];
                board[i][j] = 0;
            }
        }
        for (int i = 0; i < n; i++) {
            board[i][0] = save[i];
        }
    }


    public static void secondFold() {
        for(int i = 0; i < n/2; i++) {
            board[n-1-i][1] = board[i][0];
            board[i][0] = 0;
        }

        for (int i = 0; i < n/4; i++) {
            for (int j = 0; j < 2; j++) {
                board[n-1-i][3-j] = board[n/2+i][j];
                board[n/2+i][j] = 0;
            }
        }
    }

    static void init() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String[] line = br.readLine().split(" ");
        n = st(line[0]);
        k = st(line[1]);
        board = new int[n][25];

        line = br.readLine().split(" ");
        for (int i = 0; i < n; i++) {
            board[i][0] = st(line[i]);
        }
    }


    public static boolean valid(int x, int y) {
        if(x < 0 || x >= n || y < 0 || y >= 25) return false;
        else return true;
    }


    public static int st(String str) {
        return parseInt(str);
    }

}

4. 코드 해설

  • board를 new int[n][25]로 선언한 이유:
    • new int[25][n]으로 선언하면 바닥(24, 0)부터 쌓아올려야 하기 때문에 index 관리가 어려울 것 같아서 0부터 index를 시작할 수 있도록 위와 같이 board를 선언했습니다.
    • n이 최대 100임으로 아무리 접어도 쌓은 높이가 25를 넘을 수는 없습니다
  • firstFold() 함수
    코드와 아래 그림을 함께 보시면 이해가 편하시리라 생각됩니다.
    핵심은 화살표 순서에 맞춰서 인덱스를 짜주는 것입니다. 이런 문제의 경우 보통 한 예제에 대해서만 이를 잘 지켜서 코드를 짜면, 예외 케이스가 없는 문제여서 다른 예제에서도 모두 잘 동작합니다.

5. 각 예제의 출력

addFish() 출력은 생략했습니다

  • 예제 1
Count = 1
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  3  3  0  0 
 0  0  0  0 14  5  0  0 
 0  0  0  0  9  3 11  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  5  3  0  0 
 0  0  0  0 10  6  0  0 
 0  0  0  0  9  5 10  8 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9 10  5  5  6  3 10  8 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  5  5 
 0  0  0  0  0  0 10  9 
 0  0  0  0  0  0 10  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  6  5 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0 10  8 
Finally====================
10  9  6  3  8  9  5  6 


Count = 2
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  4 10  0  0 
 0  0  0  0  8  9  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  5  9  0  0 
 0  0  0  0  8  9  5  6 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 8  5  6  9  9  9  5  6 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Finally====================
 5  5  6  9  6  8  9  9 
 
 
Count = 3
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 6  9  6  8  6  6  9  9 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Finally====================
 9  9  6  6  9  6  8  6 
  • 예제 2
/Library/Java/JavaVirtualMachines/jdk-11.0.14.jdk/Contents/Home/bin/java -javaagent:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=63200:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/hwan/Documents/study/javaPS/out/production/javaPS Main
8 4
5 2 3 14 9 2 11 8
Count = 1
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  3  3  0  0 
 0  0  0  0 14  5  0  0 
 0  0  0  0  9  3 11  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  5  3  0  0 
 0  0  0  0 10  6  0  0 
 0  0  0  0  9  5 10  8 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9 10  5  5  6  3 10  8 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  5  5 
 0  0  0  0  0  0 10  9 
 0  0  0  0  0  0 10  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  6  5 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0 10  8 
Finally====================
10  9  6  3  8  9  5  6 


Count = 2
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  4 10  0  0 
 0  0  0  0  8  9  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  5  9  0  0 
 0  0  0  0  8  9  5  6 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 8  5  6  9  9  9  5  6 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Finally====================
 5  5  6  9  6  8  9  9 
  • 예제 3
/Library/Java/JavaVirtualMachines/jdk-11.0.14.jdk/Contents/Home/bin/java -javaagent:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=63220:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/hwan/Documents/study/javaPS/out/production/javaPS Main
8 3
5 2 3 14 9 2 11 8
Count = 1
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  3  3  0  0 
 0  0  0  0 14  5  0  0 
 0  0  0  0  9  3 11  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  5  3  0  0 
 0  0  0  0 10  6  0  0 
 0  0  0  0  9  5 10  8 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9 10  5  5  6  3 10  8 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  5  5 
 0  0  0  0  0  0 10  9 
 0  0  0  0  0  0 10  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  6  5 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0 10  8 
Finally====================
10  9  6  3  8  9  5  6 


Count = 2
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  4 10  0  0 
 0  0  0  0  8  9  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  5  9  0  0 
 0  0  0  0  8  9  5  6 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 8  5  6  9  9  9  5  6 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Finally====================
 5  5  6  9  6  8  9  9 


Count = 3
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 6  9  6  8  6  6  9  9 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Finally====================
 9  9  6  6  9  6  8  6 
  • 예제 4
/Library/Java/JavaVirtualMachines/jdk-11.0.14.jdk/Contents/Home/bin/java -javaagent:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=63223:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/hwan/Documents/study/javaPS/out/production/javaPS Main
8 2
5 2 3 14 9 2 11 8
Count = 1
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  3  3  0  0 
 0  0  0  0 14  5  0  0 
 0  0  0  0  9  3 11  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  5  3  0  0 
 0  0  0  0 10  6  0  0 
 0  0  0  0  9  5 10  8 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9 10  5  5  6  3 10  8 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  5  5 
 0  0  0  0  0  0 10  9 
 0  0  0  0  0  0 10  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  6  5 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0 10  8 
Finally====================
10  9  6  3  8  9  5  6 


Count = 2
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  4 10  0  0 
 0  0  0  0  8  9  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  5  9  0  0 
 0  0  0  0  8  9  5  6 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 8  5  6  9  9  9  5  6 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Finally====================
 5  5  6  9  6  8  9  9 


Count = 3
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 6  9  6  8  6  6  9  9 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Finally====================
 9  9  6  6  9  6  8  6 


Count = 4
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  9  7  8  7 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  9  7  8  7 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9  7  7  7  9  9  8  7 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  7  7 
 0  0  0  0  0  0  7  9 
 0  0  0  0  0  0  8  7 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  7  7 
 0  0  0  0  0  0  7  9 
 0  0  0  0  0  0  8  7 
Finally====================
 8  7  7  9  7  9  7  9 
  • 예제 5
/Library/Java/JavaVirtualMachines/jdk-11.0.14.jdk/Contents/Home/bin/java -javaagent:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=63226:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/hwan/Documents/study/javaPS/out/production/javaPS Main
8 1
5 2 3 14 9 2 11 8
Count = 1
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  3  3  0  0 
 0  0  0  0 14  5  0  0 
 0  0  0  0  9  3 11  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  5  3  0  0 
 0  0  0  0 10  6  0  0 
 0  0  0  0  9  5 10  8 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9 10  5  5  6  3 10  8 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  5  5 
 0  0  0  0  0  0 10  9 
 0  0  0  0  0  0 10  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  6  5 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0 10  8 
Finally====================
10  9  6  3  8  9  5  6 


Count = 2
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  4 10  0  0 
 0  0  0  0  8  9  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  5  9  0  0 
 0  0  0  0  8  9  5  6 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 8  5  6  9  9  9  5  6 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Finally====================
 5  5  6  9  6  8  9  9 


Count = 3
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 6  9  6  8  6  6  9  9 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Finally====================
 9  9  6  6  9  6  8  6 


Count = 4
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  9  7  8  7 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  9  7  8  7 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9  7  7  7  9  9  8  7 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  7  7 
 0  0  0  0  0  0  7  9 
 0  0  0  0  0  0  8  7 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  7  7 
 0  0  0  0  0  0  7  9 
 0  0  0  0  0  0  8  7 
Finally====================
 8  7  7  9  7  9  7  9 


Count = 5
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  8  8  0  0 
 0  0  0  0  9  8  0  0 
 0  0  0  0  8  9  8  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  8  8  0  0 
 0  0  0  0  9  8  0  0 
 0  0  0  0  8  9  8  9 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 8  9  8  9  8  8  8  9 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  8  8 
 0  0  0  0  0  0  8  9 
 0  0  0  0  0  0  9  8 
 0  0  0  0  0  0  8  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  8  8 
 0  0  0  0  0  0  8  9 
 0  0  0  0  0  0  9  8 
 0  0  0  0  0  0  8  9 
Finally====================
 8  9  8  8  9  8  9  8 
  • 예제 6
/Library/Java/JavaVirtualMachines/jdk-11.0.14.jdk/Contents/Home/bin/java -javaagent:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=63229:/Users/hwan/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/213.6777.52/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/hwan/Documents/study/javaPS/out/production/javaPS Main
8 0
5 2 3 14 9 2 11 8
Count = 1
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  3  3  0  0 
 0  0  0  0 14  5  0  0 
 0  0  0  0  9  3 11  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  5  3  0  0 
 0  0  0  0 10  6  0  0 
 0  0  0  0  9  5 10  8 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9 10  5  5  6  3 10  8 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  5  5 
 0  0  0  0  0  0 10  9 
 0  0  0  0  0  0 10  8 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  3  6 
 0  0  0  0  0  0  6  5 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0 10  8 
Finally===================
10  9  6  3  8  9  5  6 


Count = 2
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  4 10  0  0 
 0  0  0  0  8  9  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  9  0  0 
 0  0  0  0  5  9  0  0 
 0  0  0  0  8  9  5  6 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 8  5  6  9  9  9  5  6 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  6  9 
 0  0  0  0  0  0  5  8 
 0  0  0  0  0  0  5  6 
Finally===================
 5  5  6  9  6  8  9  9 


Count = 3
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  6  6  0  0 
 0  0  0  0  9  6  0  0 
 0  0  0  0  6  8  9  9 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 6  9  6  8  6  6  9  9 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  6  6 
 0  0  0  0  0  0  6  8 
 0  0  0  0  0  0  9  6 
 0  0  0  0  0  0  9  9 
Finally===================
 9  9  6  6  9  6  8  6 


Count = 4
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  9  7  8  7 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  7  9  0  0 
 0  0  0  0  9  7  8  7 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9  7  7  7  9  9  8  7 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  7  7 
 0  0  0  0  0  0  7  9 
 0  0  0  0  0  0  8  7 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  7  7 
 0  0  0  0  0  0  7  9 
 0  0  0  0  0  0  8  7 
Finally===================
 8  7  7  9  7  9  7  9 


Count = 5
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  8  8  0  0 
 0  0  0  0  9  8  0  0 
 0  0  0  0  8  9  8  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  8  8  0  0 
 0  0  0  0  9  8  0  0 
 0  0  0  0  8  9  8  9 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 8  9  8  9  8  8  8  9 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  8  8 
 0  0  0  0  0  0  8  9 
 0  0  0  0  0  0  9  8 
 0  0  0  0  0  0  8  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  8  8 
 0  0  0  0  0  0  8  9 
 0  0  0  0  0  0  9  8 
 0  0  0  0  0  0  8  9 
Finally===================
 8  9  8  8  9  8  9  8 


Count = 6
FirstFold=================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  9  9  0  0 
 0  0  0  0  9  9  0  0 
 0  0  0  0  9  9  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  9  9  0  0 
 0  0  0  0  9  9  0  0 
 0  0  0  0  9  9  9  9 
unFold====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  0  0 
 9  9  9  9  9  9  9  9 
SecondFold================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  9  9 
Spread====================
 0  0  0  0  0  0  0  0 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  9  9 
 0  0  0  0  0  0  9  9 
Finally===================
 9  9  9  9  9  9  9  9 
profile
Java/Spring Back-End Developer

0개의 댓글