본문 바로가기
Programming/Algorithm(ACM Problems)

[백준] 1259번 : 팰린드롬수 / [자바] JAVA / 학습기록

by jongmln_ 2022. 1. 14.

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

 

1259번: 팰린드롬수

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

www.acmicpc.net


[백준] 1259번 : 팰린드롬수

 

 

PALINDROME : 똑바로 읽으나 거꾸로 읽으나 똑같은 글귀.

팰린드롬수. 앞으로 읽어도 뒤에서 읽어도 똑같은 수를 의미한다.

 

 

[백준] 1259번 : 팰린드롬수 입출력 예제

 

문제를 먼저 파악해보자면 입력케이스로 한자릿 수부터 다섯자릿 수까지 입력된다.

하나씩 뽑아서 비교하기에는 너무 연산이 많아 시간을 넘길것같아

그냥 수를 아예 뒤집어 원래의 수와 비교하는 방식으로 선택하였다.


[전체 코드]

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(true) { // 정해진 테스트케이스 개수가 없기때문에 true값
			int X = sc.nextInt(); //정수로 입력
			if(X == 0) { //0이 입력되면 테스트 종료
				break;
			}
	
			int result = 0;
			int count = 0;
			int num = X;
			
			while(num!=0) { //입력받은수의 뒤집은수를 result에 저장
				result = (result * 10) + num % 10;
				num /= 10;
			}
			
			if(result == X) { //뒤집은수와 입력받은수가 같다면 팰린드롬수
				System.out.println("yes");
			} else System.out.println("no");
			
		}
		
	}

}

[제출 결과]

3번의 시행착오.


키 포인트는 수 뒤집는 알고리즘이다.

다른사람들 보면 문자열을 이용하는 방법도 있는데 더 공부해서 추가하도록 하자.