https://www.acmicpc.net/problem/1259
1259번: 팰린드롬수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
www.acmicpc.net

PALINDROME : 똑바로 읽으나 거꾸로 읽으나 똑같은 글귀.
팰린드롬수. 앞으로 읽어도 뒤에서 읽어도 똑같은 수를 의미한다.

문제를 먼저 파악해보자면 입력케이스로 한자릿 수부터 다섯자릿 수까지 입력된다.
하나씩 뽑아서 비교하기에는 너무 연산이 많아 시간을 넘길것같아
그냥 수를 아예 뒤집어 원래의 수와 비교하는 방식으로 선택하였다.
[전체 코드]
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번의 시행착오.
키 포인트는 수 뒤집는 알고리즘이다.
다른사람들 보면 문자열을 이용하는 방법도 있는데 더 공부해서 추가하도록 하자.
'Programming > Algorithm(ACM Problems)' 카테고리의 다른 글
| [백준] 1731번 : 추론 / [자바] JAVA / 학습기록 (0) | 2022.01.16 |
|---|---|
| [백준] 1568번 : 새 / [자바] JAVA / 학습기록 (0) | 2022.01.16 |
| [백준] 1547번 : 공 / [자바] JAVA / 학습기록 (0) | 2022.01.16 |
| [백준] 1371번 : 가장 많은 글자 / [자바] JAVA / 학습기록 (0) | 2022.01.16 |
| [백준] 1264번 : 모음의 개수 / [자바] JAVA / 학습기록 (0) | 2022.01.15 |