728x90
300x250
https://www.acmicpc.net/problem/11068
백준 11068번 회문인 수
왼쪽,오른쪽 어떻게 읽어도 동일한 수를 회문인 수라고 한다. 토마토,기러기,스위스 같은 애들..
핵심은 2~64진법을 굳이 그 진법에 해당하는 수로 바꿔줄 필요가 없다는 것
같은 나머지값을 가지고있으면 10진법이나 B진법으로 값이 같기때문에 변환안해도 된다.
728x90
<Java 정답 코드>
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//System.setIn(new FileInputStream("Test.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int TC = Integer.parseInt(st.nextToken());
for (int t = 0; t < TC; t++) {
int res = 0;
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
//회문여부 찾기
for (int B = 2; B <= 64; B++) {
//종료: 회문인 수 찾았는가?
if(res==1)
break;
int mok = N;
int len =0;
int[] resArr = new int[20];
//1. 진법 변환
while(true) {
if(mok==0)
break;
resArr[len++] = mok%B;
mok = mok / B;
}
//2. 회문여부 확인
for (int i = 0; i <= (len/2); i++) {
if(resArr[i]==resArr[len-1-i]) {
if(i==len/2)
res = 1;
} else {
break;
}
}
}
System.out.println(res);
}
}
}
728x90
'알고리즘 > 탐색' 카테고리의 다른 글
백준 14888번: 연산자 끼워넣기 [완전탐색][재귀][브루트포스] -Java (0) | 2024.01.15 |
---|---|
백준 3085번: 사탕 게임 [브루프토스][완전탐색][구현] - Java (1) | 2023.05.02 |
백준 10448번: 유레카 이론 [완전탐색][브루트포스] -Java (0) | 2023.04.19 |
프로그래머스[Level2] - 소수 찾기 (0) | 2021.04.08 |
백준 2798번: 블랙잭 [브루트포스][BP] - Java (0) | 2020.10.02 |