문제 링크
풀이
각 글자에 대해 숫자로 매핑해준 후 팰린드롬인지 검사하면 된다.
Java 코드
더보기
처음엔 뒤집을 때도 StringBuilder를 이용해서 s를 다시 거꾸로 순회하며 구축한 후 비교해줬는데,
StringBuffer의 reverse 메서드를 사용하면 그럴 필요가 없었다.
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringBuilder out = new StringBuilder();
int N = Integer.parseInt(in.readLine());
for (int tc = 0; tc < N; ++tc) {
StringBuilder s = new StringBuilder(in.readLine().toUpperCase());
for (int i = 0; i < s.length(); ++i) {
char ch = s.charAt(i);
if (ch <= 'C') s.setCharAt(i, '2');
else if (ch <= 'F') s.setCharAt(i, '3');
else if (ch <= 'I') s.setCharAt(i, '4');
else if (ch <= 'L') s.setCharAt(i, '5');
else if (ch <= 'O') s.setCharAt(i, '6');
else if (ch <= 'S') s.setCharAt(i, '7');
else if (ch <= 'V') s.setCharAt(i, '8');
else s.setCharAt(i, '9');
}
if (s.toString().equals(new StringBuffer(s).reverse().toString())) out.append("YES\n");
else out.append("NO\n");
}
System.out.println(out);
}
}
'PS > boj' 카테고리의 다른 글
[BOJ] 13430 합 구하기 (0) | 2021.01.23 |
---|---|
[BOJ] 4197 Logo (0) | 2021.01.22 |
[BOJ] 5637 가장 긴 단어 (0) | 2021.01.22 |
[BOJ] 4176 Digits (0) | 2021.01.22 |
[BOJ] 3546 Headshot (0) | 2021.01.21 |