[Programmers] 피자나눠먹기 (1)
Blog:
머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
제한사항
1 ≤ n ≤ 100
입출력 예
n result
7 1
1 1
15 3
입출력 예 설명
입출력 예 #1
7명이 최소 한 조각씩 먹기 위해서 최소 1판이 필요합니다.
입출력 예 #2
1명은 최소 한 조각을 먹기 위해 1판이 필요합니다.
입출력 예 #3
15명이 최소 한 조각씩 먹기 위해서 최소 3판이 필요합니다.
프로그래머스 기초 문제들은 간단한 개념들을 하나씩 학습하기에 좋은 것 같다.
아직 level.0에 머무르면서 간단한 문제들을 하나씩 풀고 있는 중이다.
# Solution 1
import math
def solution(n):
answer = math.ceil(n / 7)
return answer
나는 이런식으로 올림을 해줘서 구했다.
처음에 피자가 8조각인 줄 알고 고생을 좀 했다..ㅋㅋ
다른 분들의 코드 중 괜찮은 것을 골라와봤다.
# Solution 2
def solution(n):
return (n - 1) // 7 + 1
이렇게 간단하게 풀이할 수 있는 방법이 있었다.
하지만 보기에 간단해보인다고 생각해내기가 간단하지는 않은 코드..
- 잠깐 // 의 용법을 살펴보자면 이렇다.
- 밑의 코드에서 보이다 싶이 몫을 출력해주는 연산자라고 생각해주면 된다.
- Solution 2에서는 n-1을 해줬는데 그 이유는 7판이라고 해서 2판이 되는 것이 아니라 7판까지 1판이어야 되기 때문이다.
- n // 6 을 해주는 것보다는 (n - 1) // 7 을 하는 것이 훨씬 더 직관적이라는 것을 알 수 있다.
- 여기에 1을 더해주면 된다.
def dashdash(n):
return n // 3
dashdash(1) # 0
dashdash(2) # 0
dashdash(3) # 1