[백준_1259] 팰린드롬수 - JAVA

jm_25·2022년 7월 13일
0

문제 출처


풀이

문자열 문제이다.
문자열을 파싱한 후 양쪽의 Index를 옮겨가며 서로 같은지를 확인하면 된다.
확인했는데 숫자가 같지 않으면 팰린드롬수가 아니다.
for문을 통해 index를 옮겨갈텐데, 여기서는 문자열 길이 / 2까지만 비교해주면 된다.
예를 들어, 문자열(131)의 길이가 홀수 3 이라면, 3/2 = 1 번만 문자열을 비교해주면 된다. 가운데 자리 수는 어떤 것이 오던지 팰린드롬수이므로
문자열(1331)의 길이가 짝수 4라면, 4/2 = 2번 문자열을 비교해주어야 한다. (1=1, 3=3)


코드

package boj.class2.팰린드롬수_1259;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        final String PATH = "src/test/java/boj/class2/팰린드롬수_1259/input.txt";
        System.setIn(new FileInputStream(PATH));
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        while (true) {
            StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
            String str = stringTokenizer.nextToken();
            if ("0".equals(str)) break;
            int size = str.length();
            boolean isPalindrome = true;
            for (int i = 0; i < (size / 2); i++) {
                if (str.charAt(i) != str.charAt(size - i - 1)) {
                    isPalindrome = false;
                    break;
                }
            }
            System.out.println(isPalindrome ? "yes" : "no");
        }
    }

}

채점결과

profile
매일 매일 한 개씩

0개의 댓글