๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/2436)
< ๊ณต์ฝ์ >
๋ฌธ์ ํ์ด
์ต๋ ๊ณต์ฝ์๋ C, ์ต์ ๊ณต๋ฐฐ์๋ CxDxE์ด๋ค.
์ต๋ ๊ณต์ฝ์์ ์ต์ ๊ณต๋ฐฐ์๊ฐ ์ฃผ์ด์ง๊ณ A์ B๋ฅผ ์ฐพ๋ ๊ฒ์ด ๋ฌธ์ ์ด๋ฏ๋ก D์ E๋ฅผ ๊ตฌํ๋ฉด ๋๋ค.
D์ E๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋จผ์ ( ์ต์ ๊ณต๋ฐฐ์ / ์ต๋ ๊ณต์ฝ์ )๋ฅผ ๊ตฌํ๋ฉด DxE ๊ฐ์ ์ ์ ์๋ค.
D์ E๋ ( ์ต์ ๊ณต๋ฐฐ์/์ต๋ ๊ณต์ฝ์) ์ด๋ฏ๋ก D์ E ์ฌ์ด์ ์ต๋ ๊ณต์ฝ์๊ฐ 1์ด์ด์ผ ํ๋ค.
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 _2436_ { // ๊ณต์ฝ์
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());
int max = b / a;
int result = Integer.MAX_VALUE;
int num1 = 0, num2 = 0;
for (int i = 1; i <= max; i++) {
if (max % i == 0 && result > i + (max / i) && gcd(i, max / i) == 1) {
result = i + (max / i);
num1 = i;
num2 = max / i;
}
}
bw.write((num1 * a) + " " + (num2 * a));
bw.flush();
}
private static int gcd(int i, int j) {
if (j == 0) {
return i;
}
return gcd(j, i % j);
}
}
๋ณ์)
a, b : ์ต๋๊ณต์ฝ์, ์ต์๊ณต๋ฐฐ์
max : ์ต์๊ณต๋ฐฐ์/์ต๋๊ณต์ฝ์
result : ๋ ์์ฐ์ ํฉ ์ต์๊ฐ
num1, num2 : ๋ ์์ฐ์
์ต๋๊ณต์ฝ์์ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์์์ ๋งํ ๊ฒ๊ณผ ๊ฐ์ด D์ E๋ฅผ ๊ตฌํ๊ธฐ ์ํด (์ต์ ๊ณต๋ฐฐ์/์ต๋ ๊ณต์ฝ์) ๊ฐ์ ๊ตฌํ๋ค. ๊ณฑํด์ (์ต์ ๊ณต๋ฐฐ์/์ต๋ ๊ณต์ฝ์) ์ด ๊ฐ์ ๋ง๋ค ์ ์๋ ๋ ๊ฐ์ ์์ฐ์๋ฅผ ๊ตฌํ๋ค. ๊ตฌํ ๋ ์์ฐ์์ ํฉ์ด ์์์ ๊ตฌํ ๊ฐ๋ณด๋ค ์๊ณ ๋ ์์ฐ์์ ์ต๋ ๊ณต์ฝ์ ๊ฐ์ด 1์ด๋ผ๋ฉด result, num1, num2 ๊ฐ์ ์ ๋ฐ์ดํธํ๋ค.
์ต์ข ๋ ์์ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
gcd(Integer a, Integer b)
1) b๊ฐ 0์ด๋ฉด a๋ฅผ ๋ฐํํ๋ค.
2) gcd(b, a% b)๋ฅผ ํธ์ถํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 5636_์์ ๋ถ๋ถ ๋ฌธ์์ด (0) | 2024.03.11 |
---|---|
[Baekjoon] 3980_์ ๋ฐ ๋ช ๋จ (0) | 2024.03.08 |
[Baekjoon] 9417_์ต๋ GCD (0) | 2024.03.06 |
[Baekjoon] 1461_๋์๊ด (0) | 2024.03.05 |
[Baekjoon] 16987_๊ณ๋์ผ๋ก ๊ณ๋์น๊ธฐ (0) | 2024.03.04 |