[코드업] 2018 : 개미 수열

leeng·2023년 7월 31일
0
    public static void main(String[] args) {
        int a = 1;
        int b = 6;
    }

    static void output(int a, int b) {
        String str = "";
        for (int i = 1; i < b + 1; i++) {
            if (i == 1) {
                str = "1 ";
            }else {
                str = makeNextString(str);
            }
            System.out.println(str);
            if (i >= a && i <= b) {
                System.out.println(str);
            }
        }
    }

    static String makeNextString(String prevStr) {
        Queue<Integer> queue = new LinkedList<>();
        Arrays.stream(prevStr.split(" ")).forEach(s -> queue.offer(Integer.parseInt(s)));

        int prev = 0;
        int count = 0;
        StringBuilder stringBuilder = new StringBuilder();

        while (queue.size() > 0) {
            int out = queue.poll();
            if (out != prev) {
                if (prev != 0) { // 최초가 아니면
                    stringBuilder.append(String.valueOf(count) + " ");
                }
                prev = out;
                stringBuilder.append(String.valueOf(out) + " ");
                count = 1;
            }else {
                count++;
            }
        }
        stringBuilder.append(String.valueOf(count) + " ");

        return stringBuilder.toString();
    }
profile
기술블로그보다는 기록블로그

1개의 댓글

comment-user-thumbnail
2023년 7월 31일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기