본문 바로가기

Algorithm/Implementation

(Python3) - 프로그래머스(코딩테스트 입문) : 피자 나눠 먹기 (2)

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120815

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

최대공약수와 최소공배수 문제였습니다.

📕 풀이방법

📔 풀이과정

1. 모두 같은 수의 피자 조각을 배분해야하기 때문에 일단 최소로 필요한 조각 수를 구하기 위해 최소공배수를 구해야 합니다.

 

2. 두 수를 입력 받는 lcm함수 선언 후 유클리드 호제법으로 gcd를 구한 뒤 두 수의 곱 // gcd값을 반환하도록 구현합니다.* python3.9 부터 math의 lcm을 지원하므로 해당 version에서는 직접 구현해야 합니다.

📔 정답 출력 | 반환

최소공배수에서 6으로 나눠 필요한 피자 판 수를 반환합니다.


📕 Code

📔 Python3

def gcd(a, b):
    if a % b == 0:
        return b
    return gcd(b, a % b)

def lcm(a, b):
    return a * b // gcd(a,b)

def solution(n):
    return lcm(n, 6) // 6

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.