자바 백준 3062번
브론즈 2
https://www.acmicpc.net/problem/3062
문제 보기
분류: 수학, 구현, 문자열, 사칙연산
코드 보기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 테스트 케이스의 개수 입력
int T = sc.nextInt();
// 각 테스트 케이스에 대해 확인
for (int i = 0; i < T; i++) {
// 테스트 케이스의 숫자 입력
int N = sc.nextInt();
// 좌우 대칭 여부 확인 후 출력
if (isSymmetric(N)) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
// 좌우 대칭 여부를 확인하는 함수
private static boolean isSymmetric(int N) {
// 숫자를 뒤집은 값 계산
int reversedN = reverseNumber(N);
// 원래 수와 뒤집은 수를 더함
int sum = N + reversedN;
// 합계를 문자열로 변환
String sumStr = Integer.toString(sum);
// 문자열이 좌우 대칭인지 확인
for (int i = 0; i < sumStr.length() / 2; i++) {
if (sumStr.charAt(i) != sumStr.charAt(sumStr.length() - 1 - i)) {
return false;
}
}
return true;
}
// 숫자를 뒤집는 함수
private static int reverseNumber(int num) {
int reversed = 0;
// 1의 자리를 하나씩 빼내어 reversed에 추가
while (num != 0) {
int digit = num % 10;
reversed = reversed * 10 + digit;
num /= 10;
}
return reversed;
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 6359 - 만취한 상범 (0) | 2023.11.28 |
---|---|
[Java] 백준 풀기 2910 - 빈도 정렬 (2) | 2023.11.24 |
[Java] 백준 풀기 10829 - 이진수 변환 (2) | 2023.11.22 |
[Java] 백준 풀기 2669 - 직사각형 네개의 합집합의 면적 구하기 (0) | 2023.11.21 |
[Java] 백준 풀기 2204 - 도비의 난독증 테스트 (0) | 2023.11.20 |