๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/2824)
< ์ต๋๊ณต์ฝ์ >
๋ฌธ์ ํ์ด
๋ชจ๋ ์์ ๋ง๋ค์ด ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class _2824_ { // ์ต๋๊ณต์ฝ์
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
st = new StringTokenizer(bf.readLine());
int narr[] = new int[n];
for (int i = 0; i < n; i++) {
narr[i] = Integer.parseInt(st.nextToken());
}
int m = Integer.parseInt(bf.readLine());
st = new StringTokenizer(bf.readLine());
int marr[] = new int[m];
for (int i = 0; i < m; i++) {
marr[i] = Integer.parseInt(st.nextToken());
}
long result = 1;
boolean flag = false;
for (int i = 0; i < n; i++) {
if (narr[i] == 1) {
continue;
}
for (int j = 0; j < m; j++) {
if (marr[j] == 1 || narr[i] == 1) {
continue;
}
int num = gcd(narr[i], marr[j]);
result *= num;
if (result >= 1000000000) {
flag = true;
result %= 1000000000;
}
narr[i] /= num;
marr[j] /= num;
}
}
String answer = Long.toString(result);
if (flag) {
for (int i = 0; i < 9 - answer.length(); i++) {
System.out.print("0");
}
}
System.out.println(answer);
}
private static int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
}
๋ณ์)
n : A์ ์ฝ์ ๊ฐ์
narr : A์ ์ฝ์
m : B์ ์ฝ์ ๊ฐ์
marr : B์ ์ฝ์
result, answer : ์ต๋๊ณต์ฝ์
flag : 1000000000์ผ๋ก ๋๋ ์ฌ๋ถ
A์ B์ ์ฝ์ ๊ฐ์์ ๊ฐ ์ฝ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฐ์ ์ ์ฅํ๋ค. ์ด์ค for๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฅํ ๋ชจ๋ ์ ์กฐํฉ์ ๋ง๋ค์ด gcd ํจ์๋ฅผ ํธ์ถํ๋ค. ์ด๋ ๊ฐ์ด 1์ด๋ผ๋ฉด gcd ํจ์๋ฅผ ํธ์ถํ์ง ์๊ณ ๋ค์ ์์ผ๋ก ๋์ด๊ฐ๋ค. gcd ํจ์๋ฅผ ํตํด ์ป์ ์ต๋๊ณต์ฝ์๋ฅผ result์ ๊ณฑํ๊ณ ๊ฐ ๊ฐ์๋ ๋๋๋ค. ์ด๋ result๊ฐ 1000000000 ์ด์์ด๋ผ๋ฉด ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋๋๊ณ flag๋ฅผ true๋ก ์ ์ฅํ๋ค.
flag๊ฐ true๋ผ๋ฉด 1000000000์ผ๋ก ๋๋ ์ ์ด ์์ผ๋ฏ๋ก 9์๋ฆฌ ์ด์์ด๋ผ๋ ๋ป์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์์ ๋น ์๋ฆฟ์๋งํผ 0์ผ๋ก ์ฑ์ด๋ค. ๋ง์ง๋ง์ผ๋ก answer๋ฅผ ์ถ๋ ฅํ๋ค.
gcd (int a, int b)
b๊ฐ 0์ด๋ผ๋ฉด a๋ฅผ ๋ฐํํ๋ค.
b๊ฐ 0์ด ์๋๋ผ๋ฉด gcd(b, a% b)๋ฅผ ํธ์ถํ๋ค.
์ค๋ฒํ๋ก์ฐ ๋ฐฉ์ง๋ฅผ ์ํด result ๊ฐ์ด 1000000000 ์ด์์ผ ๋ ๋๋ ์ค์ผ ํ๋ค๋ ๊ฒ์ ์์์ฐจ๋ฆฌ์ง ๋ชปํ๋ค ๐ข

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1331_๋์ดํธ ํฌ์ด (0) | 2024.05.16 |
---|---|
[Baekjoon] 1268_์์ ๋ฐ์ฅ ์ ํ๊ธฐ (0) | 2024.05.15 |
[Baekjoon] 2800_๊ดํธ ์ ๊ฑฐ (0) | 2024.05.13 |
[Baekjoon] 11055_๊ฐ์ฅ ํฐ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด (0) | 2024.05.10 |
[Baekjoon] 1051_์ซ์ ์ ์ฌ๊ฐํ (0) | 2024.05.09 |