[프로그래머스] LV.0 피자 나눠 먹기(2) / 파이썬(Python)

디딧·2022년 11월 15일

프로그래머스

목록 보기
19/36

📋 문제 설명

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

🚫 제한사항

1 ≤ n ≤ 100

💡 idea

피자가 남지 않아야 한다
-> (피자*6) % n = 0
-> 피자*6은 n의 배수
-> 피자판수*6/n이 처음으로 정수가 될 때의 피자판수
-> 반복문을 이용하자

분모 n은 최대 100이니까 피자판수는 1~100까지 반복하고, 정수가 되면 break

📝 풀이

def solution(n):
    tmp = 6 / n
    
    for i in range(1, 101):
        if (tmp * i).is_integer():
            answer = i
            break
            
    return answer

📝 다른 사람 풀이 1

(6*i)%n==0 이 될 때 까지 무한 반복

def solution(n):
    i=1
    while(1):
        if (6*i)%n==0:
            return i
        i+=1

📝 다른 사람 풀이 1 응용

내 풀이랑 합쳐보기

def solution(n):
    tmp = 6 / n
    i=1
    while(1):
        if (tmp * i).is_integer():
            return i
        i+=1

📝 다른 사람 풀이 2

math.gcd 사용

import math

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

🚗 연산 속도

다른사람풀이2 > 다른사람풀이1 = 다른사람풀이1응용 > 내풀이

profile
M.S. in Statistics, 2022 - present

0개의 댓글