Javascript-level : 코딩테스트 입문 - 피자 나눠 먹기 (3)

HS K·2022년 12월 27일
0
post-custom-banner

문제설명

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

제한사항

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

내가 쓴 답

첫번째 시도

let i = 1;

function solution(slice, n) {
    let k = Math.floor(slice/n)
   while(k>=1) {
      i++;
      k*=i;
   }
  return i
}

2번째 시도

function solution(slice, n) {
    let k = slice/n
    while (i*k >=1) {
    i++;
    k*=i
    }
    return i
}

※ 참고로 틀린 답이다. 어디가 틀렸을까?

  • 소수점이 되어도 상관없는게, 한명당 1조각 이상의 피자만 먹으면 되기 때문에 피자가 남아도 된다.

  • 위의 시도처럼 조건식을 써주게되면 i=1부터 거짓이 되기 때문에 바로 반복문 후로 넘어가기 때문에 return 값은 1이 된다.

수정한 답

function solution(slice, n) {
    let i = 1;
    while(slice*i<n){
        i++
    }
    return i;
}

여러종류의 풀이 보기

1번

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

2번

function solution(slice, n) {
    var answer = 0;
    while(n > slice * answer){
        answer++;
    }
    return answer;
}

후기

while문의 개념을 다시 짚을 수 있었다.
while문은 조건문이 참일 때 실행되는 반복문이다. 조건은 문장안이 실행되기 전에 참, 거짓을 판단한다.
따라서 문장을 원하는 만큼 반복시키기 위해서는 조건식을 어떻게 짜야할지 고민을 잘해야한다.

while문은 조건문이 참일 때 실행되는 반복문이다. 조건은 문장안이 실행되기 전에 참, 거짓을 판단한다.

문법

while (condition)
      statement


조건
반복이 시작되기 전에 조건문은 참,거짓을 판단받게 된다. 만약 조건문이 참이라면, while문 안의 문장들이 실행된다. 거짓이라면, 문장은 그냥 while 반복문 후로 넘어간다.

문장
조건문이 참일 때만 while문 속의 문장들이 실행된다. 반복문 속에 여러개의 문장을 사용하고 싶다면 중괄호 { } 를 통해 문장들을 하나로 묶어야 한다.

profile
주의사항 : 최대한 정확하게 작성하려고 하지만, 틀릴내용이 있을 수도 있으니 유의!
post-custom-banner

0개의 댓글