본문 바로가기

PS/boj

[BOJ] 4141 Numbersrebmun

문제 링크

www.acmicpc.net/problem/4141

풀이

각 글자에 대해 숫자로 매핑해준 후 팰린드롬인지 검사하면 된다.

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