아래 문제는 반복문, 나머지 연산, 삼항연산자를 사용해서 여러 방법으로 풀이법을 다르게 해보았다!!
시간에는 큰 차이가 없으나 같은 문제를 여러 방향으로 풀어보는 과정은 너무 좋았다!
피자 나눠 먹기(3)
머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
2 ≤ slice ≤ 10
1 ≤ n ≤ 100
실행 시간 : 0.01ms ~ 0.02ms
for문을 사용 해 피자 조각이 사람 수보다 크거나 같아질 때까지 반복해준다.
class Solution {
public int solution(int slice, int n) {
int answer = 0;
for(int i = 1; i <= n; i++) {
int piz = slice * i;
if(piz >= n) {
answer = i;
break;
}
}
return answer;
}
}
실행 시간 : 0.01ms ~ 0.03ms
나머지 연산 % 을 활용해서 나머지가 0이면 그
대로, 나머지가 0이 아닐 경우 + 1을 해준다.
※ int 타입은 가장 가까운 수를 반올림 하기 때문에 해당 방식으로 풀 수 있다.
class Solution {
public int solution(int slice, int n) {
if(n%slice == 0) {
return n / slice;
}else {
return n / slice + 1;
}
}
}
실행 시간 : 0.01ms ~ 0.03ms
삼항연산자를 활용해서 코드를 간결하게 작성
class Solution {
public int solution(int slice, int n) {
return n % slice > 0 ? n / slice + 1 : n / slice;
}
}