알고리즘_JAVA_06

Kingyj·2025년 3월 23일
post-thumbnail

🐤 Before

Algorithm : 연산법

수학과 컴퓨터과학에서 사용되는, 문제 해결 방법을 정의한 '일련의 단계적 절차'이자 어떠한 문제를 해결하기 위한 '동작들의 모임'이다. 계산을 실행하기 위한 단계적 규칙과 절차를 의미하기도 한다.

[ 즉, 어떤 문제를 해결하기 위한 명확한 정차와 규칙의 집합이다. ]

"알고리즘은 코딩의 효율성과 확장성을 결정짓는 핵심 요소"


🐤 Info

주제 : 피자 나눠먹기 (1)
레벨 : ★☆☆☆☆

문제
피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.

//Base Code
class Solution {
    public int solution(int n) {
        int answer = n;
        return answer;
    }
}

🐤 Think

"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;

🐤 Final Code

class Solution {
    public int solution(int n) {
        return (n + 6) / 7;
    }
}

0개의 댓글