문제
코드
맞았습니다가 뜬 코드입니다. - 메모리 14420KB | 시간 148ms | 코드 길이 928B
import java.io.*;
import java.util.*;
public class Main {
private static final BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException {
String s = bf.readLine();
String t = bf.readLine();
ArrayList<Character> T = new ArrayList<>();
for(int i = 0 ; i < t.length() ; i++) {
T.add(t.charAt(i));
}
while(s.length() < T.size()) {
if(T.get(T.size() - 1) == 'A') {
T.remove(T.size() - 1);
} else {
T.remove(T.size() - 1);
Collections.reverse(T);
}
}
StringBuilder sb = new StringBuilder();
for(Character ch : T) {
sb.append(ch);
}
String result = sb.toString();
if(result.equals(s)) {
bw.write("1");
} else {
bw.write("0");
}
bf.close();
bw.flush();
bw.close();
}
}
입력받은 T를 ArrayList에 Character 형으로 넣어서 맨 끝이 A인지 B인지에 따라 맨 끝을 그냥 빼느냐, 빼고 리스트를 뒤집느냐를 갈랐습니다.
ArrayList의 길이가 s와 같아진다면 수행을 끝내고 같은 문자열이 되었는지 확인합니다.
거꾸로 수행한다는 것이 포인트였던 것 같습니다.
Search 🔍
- Character 형 ArrayList를 String 으로 바꾸는 방법 : https://developer-talk.tistory.com/691
- ArrayList 뒤집는 방법 : https://hianna.tistory.com/570
'코딩테스트' 카테고리의 다른 글
[백준] 1956번 '운동' - Java (1) | 2023.07.16 |
---|---|
[백준] 2109번 '순회강연' - Java (1) | 2023.07.14 |
[백준] 2064번 'IP 주소' - Java (1) | 2023.07.10 |
[백준] 11404번 '플로이드' - Java (1) | 2023.07.09 |
[백준] 1339번 '단어 수학' - Java (1) | 2023.07.08 |