본문 바로가기

알고리즘(백준 등) 공부

SWEA 17319. 문자열문자열

주어진 문자열이 같은 문자열 2개가 연결되어있는 문자열문자열 형태인지 확인하는 문제이다.

 

문자열의 길이, 문자열이 주어지는데 같은 문자열이 연결되어 있을 경우 길이가 짝수이므로 길이가 홀수인 문자열은 문자열문자열이 될 수 없다.

if(length % 2 == 1) {
    sb.append("No").append('\n');
    continue;
}

 

 

이후, 맨 앞부터  중간까지 중간부터 끝과 순서대로 문자를 비교하여 같지 않은 부분이 발견되면 이는 문자열문자열이 아니다. 비교 후, 같지 않은 부분이 없다면 문자열문자열이다.

for(int i=0; i<length/2; i++) {
    if(str.charAt(i) != str.charAt(length/2 + i)) {
        sb.append("No").append('\n');
        continue outer;
    }
}
sb.append("Yes").append('\n');

 

 

결과 코드는 다음과 같다.

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

public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();

        outer: for (int tc = 1; tc <= T; tc++) {
            sb.append('#').append(tc).append(' ');
            int length = Integer.parseInt(br.readLine());
            String str = br.readLine();
            if(length % 2 == 1) {
                sb.append("No").append('\n');
                continue;
            }
            
            for(int i=0; i<length/2; i++) {
                if(str.charAt(i) != str.charAt(length/2 + i)) {
                    sb.append("No").append('\n');
                    continue outer;
                }
            }
            sb.append("Yes").append('\n');
        }
        
        br.close();
        System.out.print(sb);
    }
}

'알고리즘(백준 등) 공부' 카테고리의 다른 글

SWEA 16910. 원 안의 점  (0) 2026.05.03
SWEA 17299. 최소 덧셈  (0) 2026.05.03
SWEA 17322. 앞만 보는 나이트  (0) 2026.05.02
SWEA 17642. 최대 조작 횟수  (0) 2026.05.01
SWEA 5684. [Professional] 운동  (0) 2026.04.30