반응형
문제 설명
머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
제한 사항
1 ≤ n ≤ 100
풀이 코드
using System;
public class Solution {
public int solution(int n) {
var r = lcm(n, 6);
var answer = r / 6;
return answer;
}
int gcd(int a, int b)
{
while(b > 0)
{
var c = a % b;
a = b;
b = c;
}
return a;
}
int lcm(int n, int m)
{
return (n * m) / gcd(n, m);
}
}
최소공배수를 구해서 피자 6조각으로 나누면 해답을 얻을 수 있는 문제이다.
최소공배수를 구하기 위해서 최대 공약수를 구하고 (GCD) 이를 n * m의 곱으로 나눴다.
함께 읽으면 좋은 글
'프로그래밍 > Algorithm' 카테고리의 다른 글
[프로그래머스 Programmers] 프로세스 (1) | 2023.10.05 |
---|---|
힙(Heap) vs 이진 탐색 트리(Binary Search Tree) (1) | 2023.10.04 |
[프로그래머스 Programmers] 옷가게 할인 받기 (0) | 2023.09.27 |
해시 테이블(Hash Table)에 대해서 (0) | 2023.09.27 |
[프로그래머스 Programmers] 삼각 달팽이 (0) | 2023.09.21 |
댓글