๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/1990)
< ์์์ธํฐ๋ฆฐ๋๋กฌ >
๋ฌธ์ ํ์ด
์๋ผํ ์คํ ๋ค์ค์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ b๊น์ง ์์๋ฅผ ๊ตฌํ๋ค. a์ด์ b์ดํ ๊ฐ ์ค ์์์ธ ๊ฐ์ ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ์ธํ์ฌ ํฐ๋ฆฐ๋๋กฌ์ด๋ผ๋ฉด ์ถ๋ ฅํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class _1990_ { // ์์์ธํฐ๋ฆฐ๋๋กฌ
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(bf.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
boolean arr[] = new boolean[b + 1];
arr[0] = true;
arr[1] = true;
for (int i = 2; i < (b + 1) / 2 + 1; i++) {
if (!arr[i]) {
for (int j = i + i; j < b + 1; j += i) {
arr[j] = true;
}
}
}
boolean flag = false;
for (int i = a; i <= b; i++) {
if (!arr[i]) {
String str = Integer.toString(i);
for (int j = 0; j < str.length() / 2; j++) {
if (str.charAt(j) != str.charAt(str.length() - 1 - j)) {
flag = true;
break;
}
}
if (!flag) {
bw.write(i + "\n");
}
flag = false;
}
}
bw.write("-1");
bw.flush();
}
}
๋ณ์)
a, b : ๋ ์์ฐ์
arr : ์์ ํ๋ณ
flag : ํฐ๋ฆฐ๋๋กฌ ์ฌ๋ถ
๋ ์์ฐ์ a, b๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ b๊น์ง ์์๋ฅผ ๊ตฌํ๋ค. a์ด์ b์ดํ์ธ ๊ฐ ์ค์์ ์์์ธ ๊ฐ์ ๋จผ์ ์ฐพ๋๋ค. ์์๋ผ๋ฉด ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ์ธํ์ฌ ํฐ๋ฆฐ๋๋กฌ์ด๋ผ๋ฉด ์ถ๋ ฅํ๋ค. ๋ง์ง๋ง ์ค์๋ -1์ ์ถ๋ ฅํ๋ค.
* ์ฒ์ ์๊ฐ์ด๊ณผํ ์ฝ๋๋ฅผ ์์ ์์ด ์ ์ถํ๋๋ ํต๊ณผํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 16938_์บ ํ ์ค๋น (1) | 2024.03.15 |
---|---|
[Baekjoon] 5549_ํ์ฑ ํ์ฌ (0) | 2024.03.14 |
[Baekjoon] 1456_๊ฑฐ์ ์์ (0) | 2024.03.12 |
[Baekjoon] 5636_์์ ๋ถ๋ถ ๋ฌธ์์ด (0) | 2024.03.11 |
[Baekjoon] 3980_์ ๋ฐ ๋ช ๋จ (0) | 2024.03.08 |