X, Y로만 채워진 두 문자열에 대해서 첫번째 문자열을 오른쪽 끝에 X를 추가하거나 뒤집은 후 Y를 추가하는 작업들을 적절히 수행하여 두번째 문자열을 만들 수 있는지 확인하는 문제이다.
두번째 문자열을 역으로 오른쪽 끝에서 X면 X를 제거하기, Y라면 Y를 제거 후 뒤집기 작업을 하여 첫번째 문자열의 길이가 될 때 까지 반복 후 나온 문자열과 첫번째 문자열을 비교하여 같으면 가능하고 다르다면 불가능하게 된다.
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 tc = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i=1; i<= tc; i++) {
sb.append('#').append(i).append(' ');
String s = br.readLine(), e = br.readLine();
StringBuilder word = new StringBuilder(e);
while(word.length() > s.length()) {
if(word.charAt(word.length()-1) == 'X') {
word.deleteCharAt(word.length()-1);
} else {
word.deleteCharAt(word.length()-1);
word = word.reverse();
}
}
if(s.equals(word.toString())) {
sb.append("Yes");
} else {
sb.append("No");
}
sb.append('\n');
}
br.close();
System.out.print(sb);
}
}
'알고리즘(백준 등) 공부' 카테고리의 다른 글
| SWEA 20731. 서로소 그리드 (0) | 2026.04.25 |
|---|---|
| SWEA 20728. 공평한 분배 2 (0) | 2026.04.25 |
| SWEA 21131. 행렬정렬 (1) | 2026.04.23 |
| SWEA 21426. 흰 종이와 검은 종이 (0) | 2026.04.23 |
| SWEA 26504. MST 만들기 (0) | 2026.04.22 |