๋ฌธ์
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/2609
- ๋ ๊ฐ์ ์์ฐ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ต๋ ๊ณต์ฝ์์ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- ์ฒซ์งธ ์ค์๋ ๋ ๊ฐ์ ์์ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ๋์ 10,000์ดํ์ ์์ฐ์์ด๋ฉฐ ์ฌ์ด์ ํ ์นธ์ ๊ณต๋ฐฑ์ด ์ฃผ์ด์ง๋ค.
- ์ฒซ์งธ ์ค์๋ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋ ์์ ์ต๋๊ณต์ฝ์๋ฅผ, ๋์งธ ์ค์๋ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋ ์์ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ด๋์ด
- ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ์ซ์๋ฅผ ์ผ์ผ์ด ์ฌ์ฉํ์ฌ ๊ตฌํ ๋ ค๊ณ ํ๋ค๊ฐ ๊ณต์์ด ์์๋ ๊ฒ ๊ฐ์์ ๋ฌธ์ ํ๊ธฐ ์ ์ ๋จผ์ ์ฐพ์๋ดค์๋ค.
- ๊ทธ ๋ฐฉ๋ฒ์ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ธ๋ฐ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ด๋ a๋ฅผ b๋ก ๋๋ ๋๋จธ์ง r๋ก b๋ฅผ ๋๋ด์๋ ๋์จ ๋๋จธ์ง r'์ด 0์ด๋ฉด ๊ทธ r์ด ์ต๋๊ณต์ฝ์๋ผ๋ ๊ฒ์ด๋ค. ๋ง์ฝ 0์ผ๋ก ๋จ์ด์ง์ง ์๋๋ค๋ฉด a ์๋ฆฌ์ b๋ฅผ ๋ฃ๊ณ b์๋ฆฌ์ r์ ๋ฃ๊ณ ์์ ๋ฐฉ๋ฒ์ ๋ฐ๋ณตํ์ฌ 0์ด ๋ ๋๊น์ง ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ฉด ๋๋ค.
- ์ต์๊ณต๋ฐฐ์๋ ๋์จ ์ต๋๊ณต์ฝ์๋ฅผ ํ์ฉํ์ฌ '(a * b) / ์ต๋๊ณต์ฝ์' ์ด ์์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๊ฒช์ ์ํ์ฐฉ์ค
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ด ์ ํํ ์๊ฐ์ด ๋์ง ์์์ ์ด๋ก ์ ์ฐพ์๋ณด๋ฉด์ ๊ณต๋ถํ๋ ๊ฒ ๊ฐ๋ค. (์์ผ๋ก ์ต์๊ณต๋ฐฐ์๋ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํด์ผ๋๋ ๋ฌธ์ ๊ฐ ๋์ค๋ฉด ์ด ๋ฐฉ๋ฒ์ ๊ผญ ์์งํด์ ์์ํ ํ์ด์ผ๊ฒ ๋ค..!)
์ฝ๋
import java.io.*;
import java.util.*;
// ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
// a,b์ ๋ํด์ a๋ฅผ b๋ก ๋๋ ๋๋จธ์ง๋ฅผ r์ด๋ผ ํ๋ค๋ฉด a,b์ ์ต๋๊ณต์ฝ์์ b,r์ ์ต๋๊ณต์ฝ์๋ ๊ฐ๋ค.
// ๋ฐ๋ผ์ a๋ฅผ b๋ก ๋๋ ๋๋จธ์ง r์ ๊ตฌํ๊ณ , b๋ฅผ r๋ก ๋๋ ๋๋จธ์ง r'์ ๊ตฌํ๋ค.
// ๋๋จธ์ง๊ฐ 0์ด ๋ ๋ ๋๋ ์๊ฐ a,b์ ์ต๋๊ณต์ฝ์๊ฐ ๋๋ค.
// ํด๋น ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํ ์ต๋๊ณต์ฝ์๋ฅผ ํ์ฉํ์ฌ ์ต์ ๊ณต๋ฐฐ์๋ (a * b)/์ต๋ ๊ณต์ฝ์ ์์ผ๋ก ๊ตฌํ ์ ์๋ค.
public class BOJ2609 {
static int gcd = 0;
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
// ์ต์๊ณต๋ฐฐ์์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ ๋ ์
int N1 = Integer.parseInt(st.nextToken());
int N2 = Integer.parseInt(st.nextToken());
GCD(N1, N2);
// ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ ์์ ํ์ฉํ ์ต์๊ณต๋ฐฐ์ ๊ตฌํ๋ ์
int lcm = (N1 * N2) / gcd;
System.out.println(gcd);
System.out.println(lcm);
}
// ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ ํจ์
public static void GCD(int n1, int n2){
// n1์ด n2๋ก ๋๋์ด ๋จ์ด์ง๋ค๋ฉด n2๊ฐ ๋ ์์ ์ต๋๊ณต์ฝ์์ด๋ฏ๋ก
// ์ต๋๊ณต์ฝ์๋ n2๊ณ ํจ์ ์ข
๋ฃ
if(n1 % n2 == 0){
gcd = n2;
return;
}
// ๋ง์ฝ ๋๋์ด๋จ์ด์ง์ง ์๋๋ค๋ฉด ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ด์ฉํด์ n2์ n1์ n2๋ก ๋๋ ๋๋จธ์ง๋ก
// ํจ์๋ฅผ ๋ค์ ๋๋ฆผ
GCD(n2, n1 % n2);
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] BOJ 2869 ๋ฌํฝ์ด๋ ์ฌ๋ผ๊ฐ๊ณ ์ถ๋ค (2) | 2024.07.12 |
---|---|
[Java] BOJ 2775 ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ (0) | 2024.07.12 |
[Java] BOJ 1546 ํ๊ท (2) | 2024.07.11 |
[Java] BOJ 1259 ํฐ๋ฆฐ๋๋กฌ์ (0) | 2024.07.11 |
[Java] BOJ 15829 Hashing (2) | 2024.07.11 |