๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/9417)
< ์ต๋ GCD >
๋ฌธ์ ํ์ด
๋ชจ๋ ๋ ์์ ์ต๋๊ณต์ฝ์๋ฅผ ์ฐพ์ ์ต๋๊ฐ์ ์ฐพ๋๋ค.
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.ArrayList;
import java.util.StringTokenizer;
public class _9417_ { // ์ต๋ GCD
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;
int m = Integer.parseInt(bf.readLine());
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < m; i++) {
st = new StringTokenizer(bf.readLine());
while (st.hasMoreTokens()) {
list.add(Integer.parseInt(st.nextToken()));
}
int max = 0;
for (int j = 0; j < list.size(); j++) {
for (int k = j + 1; k < list.size(); k++) {
int num = gcd(list.get(j), list.get(k));
max = Math.max(num, max);
}
}
bw.write(max + "\n");
list.clear();
}
bw.flush();
}
private static Integer gcd(Integer a, Integer b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
}
๋ณ์)
m : ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์
list : ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์
max : ๊ฐ์ฅ ํฐ ์ต๋๊ณต์ฝ์
ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ํ ์คํธ ์ผ์ด์ค์ ์๋งํผ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์๋ฅผ ArrayList์ ์ ์ฅํ๋ค.
2) ๋ชจ๋ ๋ ์์ ์์ gcdํจ์๋ฅผ ํตํด ์ต๋ ๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค.
3) ์ต๋ ๊ณต์ฝ์์ ์ต๋๊ฐ์ ๊ตฌํ๋ค.
4) ๊ฐ์ฅ ํฐ ์ต๋๊ณต์ฝ์๋ฅผ ์ถ๋ ฅํ๋ค.
gcd(Integer a, Integer b)
1) b๊ฐ 0์ด๋ฉด a๋ฅผ ๋ฐํํ๋ค.
2) gcd(b, a% b)๋ฅผ ํธ์ถํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 3980_์ ๋ฐ ๋ช ๋จ (0) | 2024.03.08 |
---|---|
[Baekjoon] 2436_๊ณต์ฝ์ (0) | 2024.03.07 |
[Baekjoon] 1461_๋์๊ด (0) | 2024.03.05 |
[Baekjoon] 16987_๊ณ๋์ผ๋ก ๊ณ๋์น๊ธฐ (0) | 2024.03.04 |
[Baekjoon] 5107_๋ง๋๋ (0) | 2024.03.01 |