프로그래머스/코딩문제

[프로그래머스] Lv.0 피자 나눠 먹기 (3)

쟌문 2024. 2. 19. 14:20
반응형

문제 바로가기

🔖 문제 설명 

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

 


⛔ 제한사항

  • 2 ≤ slice ≤ 10 
  • 1 ≤ n ≤ 100

 

 


🔖 입출력 예 설명

입출력 예 #1 

  • 10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다.

 

입출력 예 #2 

  • 12명이 4조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 3판을 시켜야 합니다.

🧾 기본 제공 코드

function solution(slice, n) {
    var answer = 0;
    return answer;
}
 
 

🗳️ 직접 풀이한 코드

function solution(slice, n) {
    let result = 1;
    let pizza = slice;
    
    if (n <= pizza) return result;
    
    while (pizza < n) {
        pizza += slice;
        result++;
    }
    
    return result;
}

 

 


🗳️ 다른 사람이 풀이한 코드

function solution(slice, n) {
    return Math.ceil(n / slice);
}

 

 


💬 마치며

다른 사람들이 풀이한 방법과는 반대로 주어진 사람 수(n)가 피자 조각 수(slice)보다 높은 경우 피자 조각 수에 while문으로 순회하며 조건에 충족되지 않을 경우 피자 조각 수 초기값 저장을 위해 선언한 변수(pizza)에 매개변수로 전달되었던 피자 조각 수만큼 더해주는 방법을 채택했었다.

 

풀이 후 다른 사람들이 풀이한 방법을 보며 굳이 피자 조각 수에 배가 되도록 더해주는게 아닌 사람 수 대비 조각 수를 나눈 후 Math.ceil() 메서드를 활용하여 나눈 값을 반올림하여 구할 수도 있구나 하는 걸 알게 되었다.

 

개발하면서 Math.ceil() 메서드를 많이 활용해보지 않아 떠올리지 못했는데, 이번 기회에 활용 방법 및 효율적인 풀이 방식을 알게 된 거 같아 유익하다 느꼈다.

 

GOOOOOOOOOOD 👍🏻👍🏻

 

 


🔸 작성된 본문 내용 중 미흡한 부분이 있을 수 있습니다.
🔸 고칠 부분이나 추가되면 좋을 내용 댓글로 남겨주시면 완성도 높은 글을 만들어가는 데에 큰 힘이 됩니다. ☺️

 

반응형