본문 바로가기
백준

[백준] 1259번 : 팰린드롬수 – JAVA [자바]

by Hongwoo 2022. 8. 16.
반응형

https://www.acmicpc.net/problem/1259

 

1259번: 팰린드롬수

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 1259번 팰린드롬수는 브론즈 1 난이도의 구현 및 문자열 문제이다. 이 문제에서는 숫자들이 주어지고 그 숫자가 팰린드롬인지 아닌지 출력하면 되는 문제이다. 팰린드롬이란 수의 숫자들을 뒤에서부터 읽어도 같은 경우를 뜻한다. 한 예로는 121이 있다.

 

우선 숫자를 String형으로 입력받는다. 그리고 charAt() 함수를 이용해서 첫 인덱스와 마지막 인덱스부터 비교한다. 그리고 앞에서 두 번째 인덱스와 뒤에서 두 번째 인덱스끼리도 비교한다. 그리고 그 숫자들이 다르면 팰린드롬이 아니게 된다.

 

만약에 팰린드롬이면 yes를 출력하고 팰린드롬이 아니면 no를 출력하면 된다.

 

자세한 코드는 아래에 있다.

 


  • 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        while (true) {
            String s = br.readLine();  //숫자 입력받기
            int n = s.length();  //숫자의 개수
            boolean b = true;
            if (s.equals("0")) break;
            for (int i = 0; i <= n/2; i++) {
                if (s.charAt(i) != s.charAt(n-i-1)) b = false;  //앞뒤가 다르면 팰린드롬이 아니다
            }
            if (b) {  //팰린드롬이면 yes 출력
                sb.append("yes\n");
            } else {  //팰린드롬이 아니면 no 출력
                sb.append("no\n");
            }
        }
        System.out.print(sb);
    }
}

 

 

반응형

댓글