https://www.acmicpc.net/problem/1934
1934๋ฒ: ์ต์๊ณต๋ฐฐ์
๋ ์์ฐ์ A์ B์ ๋ํด์, A์ ๋ฐฐ์์ด๋ฉด์ B์ ๋ฐฐ์์ธ ์์ฐ์๋ฅผ A์ B์ ๊ณต๋ฐฐ์๋ผ๊ณ ํ๋ค. ์ด๋ฐ ๊ณต๋ฐฐ์ ์ค์์ ๊ฐ์ฅ ์์ ์๋ฅผ ์ต์๊ณต๋ฐฐ์๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 6๊ณผ 15์ ๊ณต๋ฐฐ์๋ 30, 60, 90๋ฑ์ด ์
www.acmicpc.net
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); StringBuilder sb = new StringBuilder(); for(int i = 0; i < N; i++) { int a = in.nextInt(); int b = in.nextInt(); int d = gcd(a, b); // ์ต์ ๊ณต๋ฐฐ์ ๊ตฌํ๊ธฐ sb.append(a * b / d).append('\n'); } System.out.println(sb); } // ์ต๋๊ณต์ฝ์ ๋ฐ๋ณต๋ฌธ ๋ฐฉ์ public static int gcd(int a, int b) { while (b != 0) { int r = a % b; // ๋๋จธ์ง๋ฅผ ๊ตฌํด์ค๋ค. // GCD(a, b) = GCD(b, r)์ด๋ฏ๋ก ๋ณํํ๋ค. a = b; b = r; } return a; } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); StringBuilder sb = new StringBuilder(); for(int i = 0; i < N; i++) { int a = in.nextInt(); int b = in.nextInt(); int d = gcd(a, b); // ์ต์ ๊ณต๋ฐฐ์ ๊ตฌํ๊ธฐ sb.append(a * b / d).append('\n'); } System.out.println(sb); } // ์ต๋๊ณต์ฝ์ ๋ฐ๋ณต๋ฌธ ๋ฐฉ์ public static int gcd(int a, int b) { while (b != 0) { int r = a % b; // ๋๋จธ์ง๋ฅผ ๊ตฌํด์ค๋ค. // GCD(a, b) = GCD(b, r)์ด๋ฏ๋ก ๋ณํํ๋ค. a = b; b = r; } return a; } } | cs |
์ด ๋ฌธ์ ๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ฌ์ฉํด์ ํ์ด์ค๋ค. ๋จผ์ ์ค์บ๋๋ฅผ ํตํด์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐฏ์๋ฅผ N ๋ณ์์ ๋ฐ์์ค๋ค. ๊ทธ๋ฆฌ๊ณ StringBuilder ๊ฐ์ฒด๋ฅผ ํ๋ ๋ง๋ค์ด์ค๋ค. ์ผ๋ฐ ์คํธ๋ง์ ๋ถ๋ณํ๊ธฐ ๋๋ฌธ์ ๊ณ์ ๋ฐ๋ ๋๋ง๋ค ์๋ก์ด ๋ฌธ์์ด์ด ์ถ๊ฐ๊ฐ ๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ก ํฐ ๊ณต๊ฐ์ ์ฐจ์งํ๊ฒ ๋๋ ๋ฐ๋ฉด์ StringBuilder๋ ๊ณ์ ์ถ๊ฐ(๋ณ๊ฒฝ)๊ฐ ๋๋ ํ์์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น๊ต์ ๋ ์ฌ์ฉํ๊ฒ ๋๋ค. ๊ทธ๋ ๊ธฐ์ ์ด ๊ฐ์ฒด๋ฅผ ํ๋ ๋ง๋ค์ด์ฃผ๊ณ ํ ์คํธ ์ผ์ด์ค์ ๊ฐฏ์๋งํผ ๋ฐ๋ณตํด ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ ์ซ์ ๋๊ฐ๋ฅผ ์ ๋ ฅ ๋ฐ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ ๋ค์์ sb์ ์ถ๊ฐํ๊ณ ๊ทธ๊ฒ์ for๋ฌธ์ ๋น ์ ธ๋์์ ์ถ๋ ฅํ๋ฉด ๋๋ค. gcd (์ต๋ ๊ณต์ฝ์)๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ์๋ฅผ ๋ค์ด ์ค๋ช ํ๊ฒ ๋ค. a๊ฐ 48, b๊ฐ 18์ด๋ผ๊ณ ๊ฐ์ ํด๋ณด์. r = a % b์์ 48 % 18์ ๊ฐ, ์ฆ 12๋ฅผ r์ ์ ์ฅํ๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ a = b์์ a์ ๊ฐ์ด 18๋ก ๋์ฒด๊ฐ ๋๊ณ b์ ๊ฐ์ด 12๋ก ๋์ฒด๊ฐ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ค์ r = a % b์์ r = 18 % 12 -> r =6์ด๋๊ณ a = b๋ฅผ ํตํด a = 12, b = 6์ด ๋๋ค. ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด a๋ 6์ด ๋๋๋ฐ ์ฆ ์ต๋๊ณต์ฝ์๋ 6์ด๋ค. ์ด๋ ๊ฒ ์ต๋ ๊ณต์ฝ์๋ฅผ a์ b๋ฅผ ๊ณฑํด์ ์ต๋ ๊ณต์ฝ์์ ๊ฐ์ผ๋ก ๋๋์ด์ฃผ๋ฉด ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ ์ ์๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 11866 ์์ธํธ์ค With Queue of JAVA (0) | 2024.01.28 |
---|---|
๋ฐฑ์ค 10773 ์ ๋ก Stack with Stack of Java (0) | 2024.01.27 |
๋ฐฑ์ค 14425 ๋ฌธ์์ด ์งํฉ Using Javaโs hash map (0) | 2024.01.21 |
๋ฐฑ์ค 13241 ์ต์ ๊ณต๋ฐฐ์ With JAVA (0) | 2024.01.20 |
๋ฐฑ์ค 11478 ์๋ก ๋ค๋ฅธ ๋ฌธ์์ด์ ๊ฐ์ With JAVA (0) | 2024.01.16 |