본문 바로가기
알고리즘/문제풀이

[JAVA]백준 - 1259.팰린드롬수

by 겅아링 2020. 11. 8.
반응형

www.acmicpc.net/problem/1259

 

1259번: 팰린드롬수

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.

www.acmicpc.net

 

풀이 >

문자열을 잘라 배열로 만든 후 , 배열의 인덱스로 문자가 같은지 확인했다.
플래그를 boolean으로 구현하고 싶었는데 생각이안나서 비교한 갯수가 맞으면 전부 비교해서 맞다고 생각하고 yes를 출력하도록 했따...
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String[] val = br.readLine().split("");
        while (!val[0].equals("0")) {
            int flag = 0;
            for (int i = 0; i < val.length / 2; i++) {
                if (val[i].equals(val[val.length - 1 - i])) {
                    flag += 1;
                } else flag = 0;
            }
            if (flag == val.length / 2) sb.append("yes");
            else sb.append("no");

            val = br.readLine().split("");
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

 

 

수정한 풀이 > 

0 과 문자열의 길이-1 로 변수를 만들어 서로 비교한다
비교중 틀린 값이 발견되면 바로 while문을 빠져나와 no 출력
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String val = br.readLine();
        while (!val.equals("0")) {
            boolean flag = true;
            int i = 0;
            int j = val.length() - 1;
            while (i < j) {
                if (val.charAt(i) == val.charAt(j)) {
                    i++;
                    j--;
                } else {
                    flag = false;
                    break;
                }
            }
            if (flag) sb.append("yes");
            else sb.append("no");
            val = br.readLine();
            sb.append("\n");
        }
        System.out.println(sb);
    }
}
반응형