Algorithm : 연산법
수학과 컴퓨터과학에서 사용되는, 문제 해결 방법을 정의한 '일련의 단계적 절차'이자 어떠한 문제를 해결하기 위한 '동작들의 모임'이다. 계산을 실행하기 위한 단계적 규칙과 절차를 의미하기도 한다.
"알고리즘은 코딩의 효율성과 확장성을 결정짓는 핵심 요소"
주제 : 피자 나눠먹기 (1)
레벨 : ★☆☆☆☆
문제
피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.
//Base Code
class Solution {
public int solution(int n) {
int answer = n;
return answer;
}
}
"n명이 최소 1조각씩 먹으려면 몇 판의 피자가 필요할가?"를 구하는 문제이다.
피자가게의 1판은 7조각이므로(7조각 커팅힘들겠다..), n명이 최소 한 조각을 멏기 위해 몇판이 필요한지 계산하는 문제.
return n / 7;
그런데 나누기에서 했듯이 n을 7로 나누면 정수가 떨어지지 않기때문에
n명이 한 조각 이상씩 먹으려면 n을 7로 나누었을때 올림한 값이 필요하다.
그래서 강제로 올림 효과를 만들어야 한다.
n+6 = 7 이다 7/7은 1이니까 1판
n이 8이라면 8+6은 14니까 14/7는 2판
return return (n + 6) / 7;
class Solution {
public int solution(int n) {
return (n + 6) / 7;
}
}