[자바 알고리즘] 40. 최대공약수 활용

Feb 12, 2025
[자바 알고리즘] 40. 최대공약수 활용
 

1. 기본문제

사과 12개를 3명이서 공평하게 나누려면 몇 개씩 나누면 될까? 여기서 최대공약수(GCD)를 사용하면 각 사람에게 나눠야 할 개수를 쉽게 구할 수 있어요.
import javax.crypto.spec.PSource; public class GCD02 { // 사과 12개를 3명이서 공평하게 나누려면 몇 개씩 나누면 될까? // 여기서 최대공약수(GCD)를 사용하면 각 사람에게 나눠야 할 개수를 쉽게 구할 수 있어요. public static void main(String[] args) { int a = 12; int b = 3; int result = Util.gcd(a, b); System.out.println("각 사람에게 나눠야 할 개수 : " + result); } }
notion image

2. 심화문제

사과 12개 🍎, 바나나 18개 🍌, 귤 24개 🍊을 같은 개수로 최대한 공평하게 나눌 때, 한 사람당 받을 개수는?
public class GCD03 { public static void main(String[] args) { // 사과 12개 🍎, 바나나 18개 🍌, 귤 24개 🍊을 같은 개수로 최대한 공평하게 나눌 때, // 한 사람당 받을 개수는? int a = 12; int b = 18; int c = 24; // 3개의 수의 최대 공약수 구하기 int d = Util.gcd(a, b); int gcd = Util.gcd(d, c); // 한사람이 받을 수 있는 사과의 개수 int apple = a / gcd; int banana = b / gcd; int orange = c / gcd; System.out.println("한사람당 받을 사과의 개수 : " + apple); System.out.println("한사람당 받을 바나나의 개수 : " + banana); System.out.println("한사람당 받을 오렌지의 개수 : " + orange); } }
notion image
Share article

gunwoo