최소공배수 (2) [프로그래머스] 피자 나눠 먹기(2) _JAVA 머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ n ≤ 100 class Solution { public int solution(int n) { int answer = 0; answer = lcm(n, 6)/6; return answer; } //최대공배수 구하기 public int lcm(int num1, int num2) { return num1*num2/gcd(num1, num2); } //최소공약수 구하기 public int gcd(int num1, int .. [Java] 최대공약수, 최소공배수 구하기(유클리드 호제법) 유클리드 호제법 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 1. 두 수 중 큰 수를 작은 수로 나누어 나머지를 구한다. 2. 작은 수를 방금 구한 나머지로 나눈다. 3. 나머지가 0이 될 때까지 반복한다. 4. 나머지가 0이 될 때 나눴던 수가 최대공약수이다. 최대공약수를 구하는 코드 private int gcd(int max, int min) { while (max % min != 0) { int temp = max; max = min; min = temp % min; } return min; } //아래와 같이 재귀 함수로 간단하게 나타낼 수도 있다. private int gcd(.. 이전 1 다음