⌨️ 프로그래머스/코딩테스트 입문

[프로그래머스] 피자 나눠 먹기(1) 🍕

하나둘세현 2024. 2. 16. 21:44
728x90

문제

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

해결 과정

처음에는 

1. 피자 변수를 만든다.

2. 피자를 7조각으로 나눈다.

이런 식으로 접근을 했다.

 

다시 문제를 읽어보고 입출력 예 설명을 읽었다. 

 

7명은 최소 1판 필요

1명은 최소 1판 필요

15명은 최소 3판 필요

24명일땐 최소 4판 필요

 

 

옆 사진 처럼 나눗셈을 이용해서 하면 소수점이 나온다.

8 % 7 = 1.xxx

 

소수점을 올려서 문제를 풀어보기로 했다.

 

소수점을 올릴때는 Math.ceil()을 이용한다.

 

소수점을 올리기위해서는 나누기할당을 이용해야한다. 

그래서 아래와 같이 코드를 작성했다.

let pizzaNum n / 7;

 

앞서 작성한거처럼 Math.ceil()을 이용하여 문제를 풀었다.

새롭게 알게된 점📝

문제를 풀다가 나누기(/)를 써야하는지 나머지 (%) 를 써야하는지 헷갈렸다.

소수를 올릴때는 나누기(/)를 사용하고

정수를 반올림하는 경우에는 나머지(%)를 사용해야 한다.

 

Math.ceil 메서드는 인수로 전달된 숫자의 소수점 이하를 올림한 정수를 반환한다.

소수점 이하를 올림하면 더 큰 정수가 된다. 

(모던 자바스크립트 562쪽 참고)

 

그렇다면 소수점 이하의 숫자를 내릴려면 어떤 메서드를 써야할까?

Math.floor 메서드를 이용하면 된다.

정답

function solution(n) {
    let pizzaNum = n / 7;
    return Math.ceil(pizzaNum);
}

 

문제 푸는데 걸린 시간: 17m 54s

728x90