[Programmers] #120816 - 피자 나눠 먹기 (3) [Java][C++][Python]
피자 한 판을 slice 조각으로 나눠 n명이 한 조각씩 먹기 위한 최소 피자 판수를 구하는 워밍업 문제.
[Programmers] #120816 - 피자 나눠 먹기 (3) [Java][C++][Python]
1. 아이디어
피자 한 판을 slice 조각으로 자를 때, n명이 모두 한 조각 이상 먹기 위해 필요한 최소 피자 판수를 구하는 문제다. n을 slice로 나눈 몫을 올림하면 되므로, (n + slice - 1) / slice처럼 나눌 값에 (나누는 수 - 1)을 더해 정수 나눗셈으로 올림을 구현한다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(1)$ | $O(1)$ |
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
class Solution {
public int solution(int slice, int n) {
return (n + slice - 1) / slice;
}
}
1
2
3
4
5
6
#include <bits/stdc++.h>
using namespace std;
int solution(int slice, int n) {
return (n + slice - 1) / slice;
}
1
2
def solution(slice, n):
return (n + slice - 1) // slice
This post is licensed under CC BY 4.0 by the author.