문제출처
머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
풀이코드
def solution(n):
answer = 0
div = 6
while div % n != 0:
div += 6
answer = div // 6
return answer
코드설명
1. div 변수에 6을 대입
2. 나머지 값이 0이 아닐때까지 (while 구문으로 조건에 만족할 때까지) 구문 반복
3. 0이 아닐 시에 6을 더해가면서 최소공배수 찾기
4. 최소공배수를 찾았다면 6으로 나눠 몫을 반환
최소공배수
: 두 수의 공통된 배수 중 가장 작은 수이며 두 수를 모두 나눌 수 있는 가장 작은 수
최대공약수
: 두 수의 공통된 약수 중 가장 큰수이며 두 수를 동시에 나눌 수 있는 가장 큰수
# 유클리드호제법으로 최대공약수 찾기
import math
gcd_value = math.gcd(12,8)
print(gdc_value) # 출력 : 6
# 최소공배수 찾기
lcm_value = abs(12*18) // gcd_value # abs는 절대값을 구하는 함수
print(lcm_value) # 출력: 36
반응형