https://www.acmicpc.net/problem/11068
진법변환과 팰린드롬을 동시에 물어보는 문제이다.
처음에 진법변환을 해주는 함수 Integer.toString()을 이용하였으나 이 함수는 36진법까지만 변환을 해준다.
그래서 진법변환을 해주는 함수를 직접 구현한다음, 팰린드롬인지 아닌지 확인하고 결과를 출력해주면 된다.
import java.io.*;
import java.util.*;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int a=Integer.parseInt(br.readLine());
for(int i=0;i<a;i++){
int num=Integer.parseInt(br.readLine());
int count=0;
for(int j=2;j<=64;j++){
String str=진수변환(num,j);
boolean flag=true;
for(int k=0;k<str.length()/2;k++){
if(str.charAt(k)!=str.charAt(str.length()-1-k)){
flag=false;
break;
}
}
if(flag){
count++;
}
}
if(count>0){
bw.write("1\n");
}else{
bw.write("0\n");
}
}
bw.flush();
bw.close();
br.close();
}
public static String 진수변환(int number, int N){
StringBuilder sb = new StringBuilder();
int current = number;
while(current > 0){
if(current % N < 10){
sb.append(current % N);
} else {
sb.append((char)(current % N - 10 + 'A'));
}
current /= N;
}
return sb.reverse().toString();
}
}
'Koala - 13기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/c++] 2596: 비밀편지 (0) | 2024.01.29 |
---|---|
[백준/Python] 11655번 : ROT13 (0) | 2024.01.28 |
[백준/Python] 15905번 : 스텔라(STELLA)가 치킨을 선물했어요 (0) | 2024.01.28 |
[백준/C++] 10845: (0) | 2024.01.28 |
[백준/C++] 1181: 단어 정렬 (0) | 2024.01.28 |