https://school.programmers.co.kr/learn/courses/30/lessons/120814
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 답안 :
1
2
3
|
def solution(n):
answer = [i for i in range(1,16) if (7*i)//n >= 1]
return min(answer)
|
cs |
n이 최대값인 100일때 팔요한 피자는 15판이므로,
1판~16판 사이에서 7*판수를 인원으로 나눈 몫이 1보다 크거나 같아야 인당 1조각이 보장되기 때문에,
if 조건이 포함된 for문으로 작성했다.
answer배열에서 가장 작은 값이 필요한 피자 판 수의 최소값이므로 min함수로 정답을 리턴했다.
문제 분류가 배열이기 때문에 배열을 이용하여 풀었는데, 풀면서도 가장 합리적인 풀이는 아닐 것이라고 생각했다.
개선안 :
1
2
|
def solution(n):
return (n - 1) // 7 + 1
|
cs |
입력한 인원에서 1을 빼고 7로 나눈 몫에 1을 더한 값을 리턴받는다.
n-1을 했으므로 7로 나눈 몫에 한판이 더 있어야 모든 인원이 최소 한 조각을 보장받는다.
난 복잡하게 생각했는데, 이렇게 단순화하는 연습을 해야겠다.
'프로그래밍 > Python' 카테고리의 다른 글
프로그래머스_python lv0. 피자 나눠 먹기(3) (0) | 2023.01.12 |
---|---|
프로그래머스_python lv0. 피자 나눠 먹기(2) (0) | 2023.01.11 |
프로그래머스_python lv0. 짝수는 싫어요 (1) | 2023.01.08 |
파이썬 dictionary key, value 값 출력 (0) | 2023.01.07 |
프로그래머스_python lv0. 최빈값 구하기 (0) | 2023.01.07 |