SWEA(SWExpertacAdemy)

[SWEA] 10570. 제곱 팰린드롬 수 (자바/JAVA)

심층코드 2025. 5. 9. 17:26

10570. 제곱 팰린드롬 수 D3

 



앞으로 읽어도 뒤로 읽어도 똑같은 문자열을 팰린드롬 혹은 회문이라고 부른다. 어떠한 실수 N이 양의 정수이며, 십진수로 표현했을 때 팰린드롬이면 이 수를 팰린드롬 수라고 부른다.

어떠한 양의 정수 N에 대해서, N과 √N이 모두 팰린드롬이면 이 수를 제곱 팰린드롬 수 라고 부른다.

예를 들어, 121은 제곱 팰린드롬 수인데, 121이 팰린드롬이며, 121의 제곱근인 11 역시 팰린드롬이기 때문이다.

 

A 이상 B 이하 제곱 팰린드롬 수는 모두 몇 개인가?

 

[입력]

첫 번째 줄에 테스트 케이스의 수 TC가 주어진다. 이후 TC개의 테스트 케이스가 새 줄로 구분되어 주어진다. 각 테스트 케이스의 첫 번째 줄에 A, B 가 주어진다. (1 ≤ A ≤ B ≤ 1000)

 

[출력]

각 테스트 케이스 마다 한 줄씩, 제곱 팰린드롬 수의 개수를 출력하라.

입력
3
1 9
10 99
100 1000
// 전체 테스트케이스 수
// 첫 번째 테스트케이스 A = 1, B = 9
// 두 번째 테스트케이스 A = 10, B = 99
 
 
출력
#1 3
#2 0
#3 2
// 첫 번째 테스트 케이스 답
// 두 번째 테스트 케이스 

[코드]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int T=Integer.parseInt(br.readLine());
		for(int i=1; i<=T; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			int result = 0;
			int A=Integer.parseInt(st.nextToken());
			int B=Integer.parseInt(st.nextToken());

			int A_=A;
			int B_=B;
			for(;A_<=B_; A_++) {

				switch (A_) {
				case 1:
				case 4:
				case 9:
				case 121:
				case 484:
					result++;
					break;

				default:
					break;
				}
			}
			System.out.println("#"+i+" "+result);
		}
		br.close();
	}

}