[프로그래머스]코딩테스트 입문 | 피자 나눠 먹기(2) | 최소공배수, 최대공약수

sun_U·2023년 2월 3일
0
post-thumbnail

문제

머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

입출력 예시

풀이 방법

import math

def solution(n):
    answer = (n * 6) // math.gcd(n, 6) // 6
    return answer

n명이 모두 같은 수로 6개가 한 판인 피자를 먹는데 조건을 만족하기 위해서는 총 인원 수와 6의 최소공배수만큼의 피자 조각을 먹으면 된다.

처음에는 math에서 최소공배수를 구하는 lcm() 함수를 사용했는데 이 함수가 꽤 최근에 생겼기 때문에 프로그래머스에서는 실행이 되지 않았다.

그래서 최대공약수를 구하는 gcd() 함수를 이용해 최소공배수를 구하고, 피자 판의 수를 구하기 위해 6으로 나눴다.

개념

a,b의 최소공배수 = (a x b) / a,b의 최대공약수

profile
Data Engineer AI/ Metaverse :)

0개의 댓글