피자 나눠 먹기 (2)

ChanghyeonO·2023년 7월 19일
0

문제설명

머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

내가 작성한 코드

function solution(n) {
    var answer = 1;
  for(let i = 0; i < n; i++){
      if(answer * 6 % n !==0){
         answer+= 1;
         }
  }
    return answer;
}

일단 무조건 피자판의 갯수는 인원수 보다 적을 것이기 때문에 for문에 n을 넣었고, 피자는 무조건 1판 이상일 것이기 때문에 answer의 기본 값을 1로 수정했다.
그리고 for문을 돌리며 만약 answer * 6(피자는 판 당 6조각이다.) 을 하고 n(인원수)로 나눈 나머지 수가 0이 아니면 answer에 1씩 추가해주는 로직을 작성했다.
이렇게 하면 피자 갯수가 인원 수에 맞아 떨어질 때까지 answer에 1씩 추가해준다.

다른 사람들이 작성한 코드

function solution(n) {
    let pizza = 1;
    while (pizza * 6 % n) {
        pizza++;
    }
    return pizza;
}

여기서는 while문을 사용했는데 전체적으로 내 코드와 비슷하나 while문을 사용함으로써 피자의 갯수가 딱 맞아 떨어질 때까지만 반복이 돌도록 해 쓸 때 없는 반복 횟수를 줄였다.

결론

나는 인원 수 만큼 반복을 돌게 해두어서 비효율적인 코드를 작성했다.
오랜만에 코딩 테스트를 해보다 보니 머리가 굳었나보다. 좀 더 효율적인 코드를 작성하기 위해 노력해봐야겠다.

profile
꾸준한 기록을 통해, 좋은 개발자가 되겠습니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

머쓱타드,,

답글 달기