๐Algorithm/๐ฅBaekjoon
[Baekjoon] 21919_์์ ์ต์ ๊ณต๋ฐฐ์
๋ฟ์ผ._.
2024. 4. 4. 22:55
๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/21919)
< ์์ ์ต์ ๊ณต๋ฐฐ์ >
๋ฌธ์ ํ์ด
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ํ์ฉํ์ฌ ๋จผ์ ์์๋ฅผ ๊ตฌํ๋ค. ์์ด A๋ฅผ ์ ๋ ฅ๋ฐ์ผ๋ฉด์ ์์๋ค์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๊ธฐ ์ํด ์ค๋ณต๋์ง ์์ ์์ ๊ฐ์ ๊ณฑํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class _21919_ { // ์์ ์ต์ ๊ณต๋ฐฐ์
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
boolean arr[] = new boolean[1000001];
arr[0] = true;
arr[1] = true;
for (int i = 2; i < 500001; i++) {
if (!arr[i]) {
for (int j = i + i; j < 1000001; j += i) {
arr[j] = true;
}
}
}
Set<Integer> set = new HashSet<>();
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
int num = Integer.parseInt(st.nextToken());
if (!arr[num]) {
set.add(num);
}
}
if (set.size() == 0)
System.out.println(-1);
else {
long result = 1;
for (int num : set) {
result *= num;
}
System.out.println(result);
}
}
}
๋ณ์)
n : ์์ด์ ๊ธธ์ด
arr : ์์
set : ์์ด A ๊ฐ ์ค ์์
result : ์์๋ค์ ์ต์๊ณต๋ฐฐ์
์์ด A์ ๊ธธ์ด n์ ์ ๋ ฅ๋ฐ๋๋ค. ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ํ์ฉํ์ฌ ์์๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ๋ค. ์์ด A์ ๊ฐ์ ์ ๋ ฅ๋ฐ์ผ๋ฉด์ ์์์ธ ๊ฐ์ set์ ์ ์ฅํ๋ค. ์ฌ๊ธฐ์ set์ ์ฌ์ฉํ๋ ์ด์ ๋ ์ค๋ณต์ฒ๋ฆฌ๋ฅผ ์ํด์๋ค. set์ ํฌ๊ธฐ๊ฐ 0์ด๋ผ๋ฉด ์์๊ฐ ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก -1์ ์ถ๋ ฅํ๊ณ set์ ํฌ๊ธฐ๊ฐ 0์ด ์๋๋ฉด set์ ์๋ ๊ฐ์ ๋ค ๊ณฑํ ๊ฐ์ ์ถ๋ ฅํ๋ค.