난이도: Bronze 1
프로그래밍 언어: Java
문제명: 팰린드롭수
푼일자: 2021년 6월
주소: https://www.acmicpc.net/problem/1259
문제풀기
이걸고보 음.. index 를 나눠서 검사하면 되지 않나?
라는 생각이 들었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class question_1259 {
    public static void main(String[] args) throws IOException {
        var br = new BufferedReader(new InputStreamReader(System.in));
        while(true) {
            var I = br.readLine().toCharArray();
            if (I.length == 1) return;
            if (I.length % 2 == 0) {
                System.out.println("no");
                continue;
            }
            var result = true;
            for (int i = 0; i < (I.length - 1) / 2; i++) {
                if (I[i] != I[(I.length - 1) - i]) {
                    result = false;
                    break;
                }
            }
            if (result) System.out.println("yes");
            else System.out.println("no");
        }
    }
}
그렇게 완성한 코드.
예제는 다 맞으나 틀렸습니다! 가 계속 나오게 된다.
결국 처음부터 다시 설계를 했다.
import java.io.*;
public class question_1259 {
    public static void main(String[] args) throws IOException {
        var br = new BufferedReader(new InputStreamReader(System.in));
        var line = br.readLine();
        while (!line.equals("0")) {
            var result = false;
            for (var i = 0; i < line.length() / 2; i++)
                if (line.charAt(i) != line.charAt(line.length() - i - 1)) {
                    result = true;
                    break;
                }
            if (result) System.out.println("no");
            else System.out.println("yes");
            line = br.readLine();
        }
    }
}
채점에 이용되는 입력값을 조금 알 수 있었으면 좋겠다!
끝!
반응형