프로그래머스/입문
[프로그래머스 입문 / 파이썬] 피자 나눠 먹기
m으스으m
2024. 7. 24. 10:37
실습 코드 :
https://colab.research.google.com/drive/1COixXoUYRTWYb9lBaXtdnkhVFgOy0LAs?usp=sharing
[프로그래머스 입문 / 파이썬] 피자 나눠 먹기.ipynb
Colab notebook
colab.research.google.com
문제 설명
머쓱이네 피자 가게에서는 피자를 일정 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n
이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
- 제한사항:
- ( 1 \leq n \leq 100 )
입력 예시 및 설명
n | result |
---|---|
7 | 1 |
1 | 1 |
15 | 3 |
- 입력 예시 #1:
- 7명이 최소 한 조각씩 먹기 위해서 최소 1판이 필요합니다.
- 입력 예시 #2:
- 1명이 최소 한 조각을 먹기 위해 1판이 필요합니다.
- 입력 예시 #3:
- 15명이 최소 한 조각씩 먹기 위해서 최소 3판이 필요합니다.
문제 접근 방법
- 피자 한 판은 7조각으로 이루어져 있습니다.
- 사람 수
n
을 7로 나눠서 필요한 피자의 수를 계산합니다. - 나머지가 있으면 한 판을 더 추가합니다.
코드 구현
def solution(n):
# 필요한 피자 판의 수를 계산
return (n + 6) // 7
# 테스트 케이스
print(solution(7)) # 출력: 1
print(solution(1)) # 출력: 1
print(solution(15)) # 출력: 3
- 주석 설명:
(n + 6) // 7
:n
을 7로 나눈 몫에 1을 더해줌으로써 나머지가 있는 경우 한 판을 더 추가합니다.
다른 풀이 방법
- 반복문을 이용한 풀이:
def solution(n):
pizzas = 0
while n > 0:
n -= 7
pizzas += 1
return pizzas
# 테스트 케이스
print(solution(7)) # 출력: 1
print(solution(1)) # 출력: 1
print(solution(15)) # 출력: 3
- 계산 복잡도: O(n/7)
- 수학적 접근을 이용한 풀이:
import math
def solution(n):
return math.ceil(n / 7)
# 테스트 케이스
print(solution(7)) # 출력: 1
print(solution(1)) # 출력: 1
print(solution(15)) # 출력: 3
- 계산 복잡도: O(1)
계산 복잡도
- 첫 번째 풀이: O(1)
- 두 번째 풀이: O(n/7)
- 세 번째 풀이: O(1)
태그
#프로그래머스 #파이썬 #코딩테스트 #입문문제 #피자나눠먹기 #수학적풀이 #반복문 #몫과나머지 #코딩문제풀이 #알고리즘