Algorithm JS | 프로그래머스 코딩테스트_피자 나눠 먹기(2)

앙두·2023년 3월 27일
0

Algorithm

목록 보기
5/17

📑 문제

  • 피자는 기본 6판
  • 매개변수 n은 사람 수를 의미 (number type)
  • 모든 사람이 동일한 피자 조각을 먹어야함

🤓 나의 풀이

function solution(n) {
  let i = 1
  let res = []
  while(i <= 100){ 
    i % 6 == 0 && res.push(i)
    i++
  }
  
  let res2 = []
  for(let j = 0; j < res.length; j++) {
    res[j] % n == 0 && res2.push(res[j]) 
  }
    
  return res2[0] / 6
}

그러나!!!! 통과 못함!!!!

어느 수는 되는데 어느 수는 되지 않는 풀이였고, (즉 틀렸단 말임)
실행시간도 넘 오래걸렸다 ...
40분넘게 씨름하였으나 해내지 못했으므로 .. 과감히 내려놓고 구글링!


👍🏻 제일 간단한 풀이 (다른 사람들의 풀이 참고)

function solution(n) {
  let pizza = 6

  while (pizza % n !== 0) {
      pizza += 6
  }

  return pizza / 6
}

세상 간단하다 ㅜ 0ㅜ ...

  • pizza는 기본적으로 6이기 때문에, let으로 변수를 선언해둡니다.
  • while 문을 사용합니다.
  • while 문의 조건은, 피자(6)과 매개변수n이 나눈 나머지가 0이 아닐 때,
  • pizza(6)에 계속 6을 더해줍니다.
  • 피자(6)과 매개변수n이 나눈 나머지가 0이 될 때 까지 더해줍니다.
  • 드디어 나머지가 0이 된 숫자가 pizza에 최종적으로 재할당되었다면,
    (0이 되어 while 문 조건값이 false가 되어 while문 밖으로 나오게 됩니다.)
  • 그 pizza 숫자와 6으로 나눈 몫을 반환합니다.
    (해당 pizza 숫자는 pizza 조각 수여서, 판으로 계산하여야 하기 때문이다.)

while 문을 잘 써본 적이 없던 나는 ... 낯선 지식에 이렇게 쉬운 문제를 헤매구 말았다 ㅜㅜ
뭐 어쩌겠는가 ... ! 이렇게 제대로 필요성을 느끼면성 제대로 배워나가는고지 ㅎ ..

🤯 그럼 끝! 난 이만 while문 공부하러...

profile
쓸모있는 기술자

0개의 댓글