문제 설명
머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
입출력 예
n | result |
6 | 1 |
10 | 5 |
4 | 2 |
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
|
function solution(n) {
const pizzaNum = 6 // 한판 조각 수
let lcm = 1 // 최소 공배수
while(true){
if(lcm % pizzaNum === 0 && lcm % n === 0){
break;
}
lcm++
}
return parseInt(lcm/pizzaNum)
}
|
cs |
문제를 풀며 느낀 점
- 매번 최소공배수나 최소 공약수를 구해야 할 때마다 알고리즘을 까먹어서 인터넷에서 검색 후 찾는데 이번에는 꼭 기억하고 싶습니다. 먼저 피자 개수를 상수로 설정하고 최소 공배수를 1로 초기화해줬습니다. 그 후 while문을 통해서 lcm(최소 공배수)을 1씩 증가시키면서 lcm을 피자 개수와, n(먹는 사람의 수)로 나눴을 때 0 &&연산자를 사용해서 두 조건 다 만족하면 break를 통해서 반복문을 멈추고 최소공배수를 피자 한판의 조각 수로 나눈 몫을 return 했습니다.
'코딩 테스트 풀이 🛠' 카테고리의 다른 글
[프로그래머스] 369게임 (0) | 2023.01.04 |
---|---|
[프로그래머스] 숫자 찾기 (0) | 2023.01.04 |
[프로그래머스] 최댓값 만들기 (2) (0) | 2023.01.04 |
[프로그래머스] 외계행성의 나이 (0) | 2023.01.04 |
[프로그래머스] 배열 회전시키기 (0) | 2023.01.04 |