Tags
- BFS
- sort
- ์ ๋ ฌ
- CodingTest
- ๊ทธ๋ํ ํ์
- Python
- ๋ฐฑํธ๋ํน
- DP
- stack
- Dynamic Programming
- PGM
- ๋ฌธ์์ด
- ์ํ
- ์๋ฃ๊ตฌ์กฐ
- ๋๋น ์ฐ์ ํ์
- ์๋ฎฌ๋ ์ด์
- ๊ต์ฌ
- ์ ์๋ก
- queue
- ๊น์ด ์ฐ์ ํ์
- LV2
- ๊ตฌํ
- Brute Force Algorithm
- ๊ทธ๋ํ ์ด๋ก
- BOJ
- dfs
- Java
- SpringBoot
- Study
- greedy
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_11068 : ํ๋ฌธ์ธ ์ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ ๋ ฅ๋ ์๊ฐ ํ๋ฌธ์ธ ์(ํฐ๋ฆฐ๋๋กฌ; palindrome) ์ธ์ง ํ์ธํ๋ค.
- 2๋ถํฐ 64 ๊น์ง ๊ธฐ์ ๋ณํ ์ ํ๋ฌธ์ธ ์์ด๋ฉด 1์, ์๋๋ผ๋ฉด 0์ ๋ฐํํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ํ๋ฌธ์ ํ์ธํ๊ธฐ ์ํด ๋ฌธ์์ด ๋์นญ ๋ฉ์๋๋ฅผ ๊ตฌํํ๋ค.
- 64 ์๋ฆฌ ๊น์ง์ ๊ธฐ์ ๋ณํ์ ๊ตฌํํ๋ค.
- Integer.toString(์ซ์, ๊ธฐ์) ๋ฉ์๋๋ ์ต๋ 32 ์๋ฆฌ ๊ธฐ์ ๋ณํ์ ์ง์ํ๊ธฐ ๋๋ฌธ์, 64 ์๋ฆฌ ๊น์ง ๋ณํ์ด ๊ฐ๋ฅํ ๋ฉ์๋๋ฅผ ์ง์ ๊ตฌํํ๋ค.
- ๊ธฐ์ ๋ณํ์ ์ํด 64๊ฐ์ ๋ณํ์ ์ํ ๋ฌธ์๊ฐ ํ์ํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.*;
public class Main {
private static final String DIGITS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@";
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for (int t = 0; t < T; t++) {
int n = Integer.parseInt(br.readLine());
sb.append(isHeaMoon(n) ? 1 : 0).append('\n');
}
bw.write(sb.toString());
bw.flush();
}
private static boolean isHeaMoon(int n) {
for (int i = 2; i <= 64; i++) {
char[] chars = customBase(n, i).toCharArray();
boolean flag = true;
for (int j = 0; j <= chars.length / 2; j++) {
if (chars[j] != chars[chars.length - j - 1]) {
flag = false;
break;
}
}
if (flag) return true;
}
return false;
}
private static String customBase(int num, int base) {
StringBuilder result = new StringBuilder();
while (num > 0) {
result.append(DIGITS.charAt(num % base));
num /= base;
}
return result.reverse().toString();
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- isHeaMoon() ๋ฉ์๋์์ ์
๋ ฅ๋ ์๊ฐ ํ๋ฌธ์ธ์ง ํ์ธํ๋ค.
- 2๋ถํฐ 64๊น์ง ๊ธฐ์ ๋ณํ์ ํด๋ณด๋ฉฐ ํ๋ฌธ์ด๋ฉด 1, ์๋๋ฉด 0์ ๋ฐํํ๋ค.
- customeBase() ๋ฉ์๋์์ ๊ธฐ์ ๋ณํ์ ์งํํ๋ค.
- DIGISTS ์ ์ ํ 64๊ฐ์ ๋ฌธ์ ์ค ํ๋๋ก ๋ณํํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ค.
- num์ base๋ก ๋๋ ๋๋จธ์ง ๊ฐ์ ๋์ ํ ํ, ๋ค์ง์ด ๋ฐํํ๋ค.
๐ธ end ๐ธ
- ์ฒ์์๋ ๊ฐ๋จํ Integer.toString()์ผ๋ก ๊ตฌํํ๋ ์ค ์์๋ค.
- ๊ธฐ์ ๋ณํ์ 32๊น์ง๋ง ์ง์ํ๋ค๋ ๊ฒ์ ์ฒ์ ์์๋ค.
- Java ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๋ฉด toString()์ ๋ํ ์ค๋ช ๊ณผ ๊ธฐ์(radix)์ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ ์ค๋ช ์ด ์ ํ์๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_28470 : ์ฅ~๋นก! ๋นก~์ฅ! (0) | 2024.11.26 |
---|---|
BOJ_1854 : K๋ฒ์งธ ์ต๋จ๊ฒฝ๋ก ์ฐพ๊ธฐ (0) | 2024.09.26 |
BOJ_1948 : ์๊ณ๊ฒฝ๋ก (0) | 2024.09.12 |
BOJ_1516 : ๊ฒ์ ๊ฐ๋ฐ (0) | 2024.09.12 |
BOJ_1113 : ์์์ฅ ๋ง๋ค๊ธฐ (0) | 2024.08.20 |