"꾸준하고 완벽한 한 걸음"

PS/Baekjoon Online Judge

[백준 13419] 탕수육 [Java]

kimyoungrok 2025. 3. 15. 01:27
728x90

문제

https://www.acmicpc.net/problem/13419

 


풀이

주어진 문자열에 대해 두 명이 탕수육 게임을 한다고 한다.

자신의 차례 때 말해야 하는 문자로만 이루어진 최소 문자열을 출력하는 문제다.

자신의 순서(0 또는 1번 인덱스)에서 2개씩 건너뛰며 다시 자신의 순서로 돌아올 때 까지 문자를 선택하면 된다.

            int idx = 0;
            StringBuilder a = new StringBuilder();
            StringBuilder b = new StringBuilder();
            do {
                a.append(S.charAt(idx));
                idx = (idx + 2) % S.length();
            } while (idx != 0);

만약 두 번째 플레이어의 경우 주어진 문자열의 길이가 1일 수 있다.

시작 인덱스가 1이 아닌 0이라면 주어진 문자열을 그대로 출력해 예외 처리하자.

            if (idx == 0) {
                b.append(S);
            } else {
                do {
                    b.append(S.charAt(idx));
                    idx = (idx + 2) % S.length();
                } while (idx != 1);
            }

소스코드

https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/13419.java

728x90