function solution(n) {
return n % 7 === 0 ? Math.floor(n / 7) : Math.floor(n / 7) + 1;
}
문제를 간단히 해보면,
n = 피자를 먹는 사람의 수
피자 = 7조각
으로 생각 할 수 있다.
그렇다면 입출력 예 1번으로 생각해보자
피자를 먹는 사람의 수(7)에서 피자조각만큼 나머지를 구한다면
7 % 7 === 0 true로 Math.floor(7 / 7)인 1이 return 된다.
만약 입출력 예 3번으로 본다면
15 % 7 === 0 false로 Math.floor(15/7) +1인 3이 return 된다.
+1을 해준이유는 나머지가 0이 아니라면 무조건 소수점이 올거고 floor함수로 소수점을 제거하면서 내림하기 때문에 +1을 해주었다.
function solution(n) {
for(i=6; n <= 100; i += 6){
if(i % n == 0){
return i/6;
}
}
}
이번엔 반복문을 통해 풀어봤다 조건을 보면,
피자 = 6조각
n = 피자를 먹는 사람수
n 명이 남기지 않고 같은 수의 피자를 먹어야함.
피자는 한판에 6조각이기 때문에 피자의 수가 커지면 +6씩,
n명이 남기지 않고 같은 수의 피자를 먹어야한다는건 피자의 총 조각에서 사람수만큼 나머지를 구했을때 0이 되야한다는 뜻으로 해석했다.
for문에서 처음 i값을 6으로 주고,
만약 피자의 조각수에서 사람수로 나머지를 구했을때 0이 아니라면
피자의 조각수를 6씩 +시키면서 만약 나머지가 0이 되었다면
피자의 총 조각에서 피자 한판의 조각인 6으로 나눗셈을 통해 피자 판 수를 return 해주었다.
function solution(slice, n) {
return (n % slice) === 0 ? Math.floor(n/slice) : Math.floor(n/slice) + 1
}
처음 문제랑 비슷한 느낌이 있다.
뭔가 조건이 추가 된거같지만 크게 어렵지않다.
조건을 보면,
slice = 피자 조각 수
n = 피자를 먹는 사람수
n명이 최소 한조각 이상 피자를 먹어야함.
크게 설명할게 없지만
풀이를 보면,
처음에 피자를 먹는 사람수(n)를 피자 조각 수(slice)로 나머지를 구한다.
나머지의 유무로 true or false를 구하며,
나머지가 없이 사람들이 잘먹었다면 사람수에서 피자 조각수를 나눈 후 return하고(입출력 예2),
나머지가 남았다면 floor로 소수점을 제외하고 피자 수를 1 증가시켜 return해준다.(입출력 예1)
function solution(numbers) {
let resultNum = numbers.reduce((acc, cur) => acc += cur);
return resultNum / numbers.length;
}
이것도 간단한 문제라 풀이 할게 없지만,
간단히 보면 배열의 평균값을 구하는 문제이다.
배열을 순회하면서 모든값을 더하고 배열의 길이로 나누면 해결 되는 쉬운 문제이다.
우선 reduce로 배열을 순회하면서 배열의 모든값을 더 해줬고
그 후 총합에서 배열의 길이로 나눠 평균을 return 해주었다.