https://www.acmicpc.net/problem/1747
1. 유형
브루트 포스
2. 문제 접근
2-1. 설계
- 에라토스테네스의 체로 소수 판단
- 투 포인터를 사용하여 팰린드롬 확인
2-2. 주의할 점
입력값이 N이고 조건을 만족하는 정답은 N보다 더 커질 수 있습니다.
따라서 에라토스테네스의 체를 구할 때, 전체 크기를 100000보다 큰 소수를 구해서 정해줘야 합니다.
3. 코드
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine());
boolean prime[] = new boolean[1004001];
int len = 1004000;
int N = stoi(st.nextToken());
prime[1] = true;
// 소수판단
for (int i = 2; i < len; i++) {
for (int j = i + i; j <= len; j += i) {
prime[j] = true;
}
}
List<Integer> ans = new ArrayList<>();
for (int i = 2; i <= len; i++) {
if (!prime[i]) {
String s = String.valueOf(i);
boolean exit = false;
int m = s.length() / 2;
int L, R;
if (s.length() % 2 == 0) {
L = m - 1;
R = m;
} else {
L = m;
R = m;
}
while (L >= 0) {
if (s.charAt(L) != s.charAt(R)) {
exit = true;
break;
}
L -= 1;
R += 1;
}
if(!exit)
ans.add(i);
}
}
for (int i = 0; i < ans.size(); i++) {
if(ans.get(i) >= N) {
System.out.println(ans.get(i));
break;
}
}
}
static int stoi(String s) {
return Integer.valueOf(s);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 - 2406 안정적인 네트워크 (0) | 2021.09.07 |
---|---|
백준 17090 - 미로 탈출하기 (0) | 2021.09.03 |
백준 13459 - (Java) 구슬 탈출 (0) | 2021.08.31 |
백준 14923 - (Java) 미로 탈출 (0) | 2021.08.29 |
백준 18113 - (Java)그르다 김가놈 (0) | 2021.08.27 |