https://school.programmers.co.kr/learn/courses/30/lessons/120815
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 답안 :
1
2
3
4
5
6
|
import math # gcd 사용 위해 import
def solution(n):
# n과 6의 최소공배수 = 조건 만족 위해 필요한 최소의 피자 조각 수
answer = (n * 6) // math.gcd(n,6)
return answer//6 # 피자 조각 수를 구했으므로 6으로 나누어 판 수 구하기
|
cs |
math.lcm으로 바로 최소공배수를 구하려고 했는데,
AttributeError: module 'math' has no attribute 'lcm' 에러가 발생했다.
찾아보니 lcm은 파이썬 3.9 이상부터 사용할 수 있기 때문에 그 이전 버전 파이썬에서 발생하는 에러라고 한다.
최소공배수(lcm)을 구하기 위해 두 수의 곱을 최대공약수(gcd)로 나누는 연산을 넣었다.
시간을 들여 고민하니 확실히 깔끔한 식이 나온다.
개선안 :
1
2
3
4
5
6
|
def solution(n):
i=1
while(1): # 무한 반복문
if (6*i)%n==0:
return i
i+=1
|
cs |
이 풀이와 같은 반복문을 사용해서 풀어보려다가 안돼서 최소공배수를 이용해서 풀었다.
이 방법도 나중에 활용할 수 있도록 숙지해야겠다.
'프로그래밍 > Python' 카테고리의 다른 글
프로그래머스_python lv0. 배열의 평균값 (0) | 2023.01.13 |
---|---|
프로그래머스_python lv0. 피자 나눠 먹기(3) (0) | 2023.01.12 |
프로그래머스_python lv0. 피자 나눠 먹기(1) (0) | 2023.01.09 |
프로그래머스_python lv0. 짝수는 싫어요 (1) | 2023.01.08 |
파이썬 dictionary key, value 값 출력 (0) | 2023.01.07 |