어떤 세균은 1시간에 두배만큼 증식한다고 합니다.
처음 세균의 마리수n
과 경과한 시간t
가 매개변수로 주어질 때
t
시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
- 1 ≤
n
≤ 10- 1 ≤
t
≤ 15
n
t
result 2 10 2048 7 15 229,376
입출력 예 #1
처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ...,
10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.
입출력 예 #2
처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ...,
15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.
function solution(n, t) {
for ( let i = 1; i <= t; i++ ) {
n *= 2
}
return n;
}
- 가장 중요한 것
-n
마리가t
시간만큼 증가한다는 점. 즉 n *= 2 라는게 기본 골자.
- 생각해 본것.
- 처음에는 제곱만큼 증가한다고 생각했는데, 생각해보니 아니었음.
- 알고보니, t의 시간은 그냥 매개변수에 불과하고, 2배씩 증가한다는게 중요했음.
const solution = (n, t) => new Array(t).fill(n).reduce((a,b) => a*2,n)
new Array(t)
를 사용하여 길이가t
인 새로운 배열을 생성합니다.fill(n)
을 사용하여 배열을n
으로 채웁니다. 이렇게 하면 배열의 각 요소가n
값으로 초기화됩니다.reduce
함수를 사용하여 배열의 모든 요소를 순회하고, 각 요소를a
와b
로 가져와서a * 2
를 반환합니다. 이 작업은 배열의 모든 요소를 곱한 뒤, 최종적으로 하나의 값을 반환합니다.
근데 이렇게 푸는거 너무 어려운듯..
New
함수 : 객체 생성자 함수를 호출하여 새로운 객체를 생성하는 데 사용됩니다.
예를 들어,new
를 사용하여 새로운 배열, 객체, 함수 등을 만들 수 있습니다.
fill
함수 : 배열의 모든 요소를 지정된 값으로 채우는 데 사용됩니다.
이 메서드는 원래 배열을 변경하고, 변경된 배열을 반환합니다.
reduce
함수 : 배열의 각 요소에 대해 주어진 함수를 실행하고,
이전 요소의 결과와 현재 요소를 결합하여 최종 결과를 반환합니다.