피자 나눠 먹기(2)

Mkim4·2023년 6월 14일
1

프로그래머스-피자 나눠 먹기(2) (링크바로가기)

(나의 풀이 방법)

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

(다른사람의 풀이 방법)

import math

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

n=6일때,
1) (n*6)= 36
2) math.gcd(6,6)=6
3) 36//6=6
4) 6//6=1
이므로 정답은 1이 나온다.

n=10일때,
1) (n*6)= 60
2) math.gcd(10,6)=2
3) 60//2=30
4) 30//6=5
이므로 정답은 5가 나온다.

아직 math함수가 익숙하지 않아 math.gcd 함수에 대한 설명을 가져와봤다. 쉽게 최대 공약수를 구하는 함수이다.

1-1) math.gcd 함수 설명

  • 함수 모양
    math.gcd( 숫자들 )

  • 함수 설명
    gcd의 인자로 숫자들을 입력할 수 있습니다. 즉, 인자는 0개부터 N개 까지 올 수 있습니다.
    gcd는 인자로 들어온 숫자들의 최대 공약수(정수)를 반환합니다.

인자가 0개인 경우 math.gcd() 일 때 함수의 반환 값은 0입니다.
모든 인자의 값이 0인 경우에도 math.gcd(0) 혹은 math.gcd(0,0,0.. 0)인 경우에도 함수의 반환 값은 0입니다.

1-2) math.gcd 함수 간단 사용법
import math # 꼭 해줘야 합니다.
math.gcd(3) # 3 반환
math.gcd(3, 6) # 3 반환
math.gcd(66, 22, 11) # 11 반환

  • 최대 공약수란?
    둘 이상의 정수의 공약수 중에서 가장 큰 것을 말합니다.
    greatest common divisor 라 부르며 약자로 gcd 라 합니다. 이 약자를 그대로 함수 이름으로 사용하는 걸로 보입니다.

참고링크

profile
귀요미 개발자

0개의 댓글