제3회 대학생 프로그래밍 경시대회 문제 A 수 뒤집기

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.util.Scanner;
public class Reverse {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();// 테스트 케이스 개수
for(int i = 0; i < T; i++) {
int N = scan.nextInt();// 정수
process(N);
}
}
public static void process(int n) {
// 원래 수와 뒤집은 수를 합한다.
int sum = n + reverse(n);
// 합한 수를 뒤집어 비교한다.
if(sum == reverse(sum)) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
/**
* 수를 뒤집는다. ex) 123 -> 321
*
* @param num 뒤집을 수
* @return 뒤집힌 수
*/
public static int reverse(int num) {
int ret = 0;
while(num > 0) {
// 기존 숫자를 왼쪽 시프트 한다.
ret *= 10;
// 마지막 한자리를 떼어낸다.
double temp = num % 10;
num /= 10;
ret += temp;
}
return ret;
}
}

주절주절

Palindrome(회문: 뒤집어도 같은 단어(ex: 별똥별)) 문제이다. 숫자를 문자열로 바꾸어서 처리해도 되지만, 문자로 바꾸지 않고 바로 뒤집어 보았다.

Share Comments