[프로그래머스] 세균 증식

엘크·2023년 9월 11일
0

programers

목록 보기
4/9
post-custom-banner

문제 설명


어떤 세균은 1시간에 두배만큼 증식한다고 합니다.
처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때
t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.

제한 사항


  • 1 ≤ n ≤ 10
  • 1 ≤ t ≤ 15

입출력 예


ntresult
2102048
715229,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;
}

Code Flow


  • 가장 중요한 것
    - n마리가 t시간만큼 증가한다는 점. 즉 n *= 2 라는게 기본 골자.
  • 생각해 본것.
    - 처음에는 제곱만큼 증가한다고 생각했는데, 생각해보니 아니었음.
    - 알고보니, t의 시간은 그냥 매개변수에 불과하고, 2배씩 증가한다는게 중요했음.

다른 해답은 없을까?


const solution = (n, t) => new Array(t).fill(n).reduce((a,b) => a*2,n)
  1. new Array(t) 를 사용하여 길이가 t 인 새로운 배열을 생성합니다.
  2. fill(n) 을 사용하여 배열을 n 으로 채웁니다. 이렇게 하면 배열의 각 요소가 n 값으로 초기화됩니다.
  3. reduce 함수를 사용하여 배열의 모든 요소를 순회하고, 각 요소를 ab로 가져와서 a * 2 를 반환합니다. 이 작업은 배열의 모든 요소를 곱한 뒤, 최종적으로 하나의 값을 반환합니다.

근데 이렇게 푸는거 너무 어려운듯..

공부할 것


  • New 함수 : 객체 생성자 함수를 호출하여 새로운 객체를 생성하는 데 사용됩니다.
    예를 들어, new 를 사용하여 새로운 배열, 객체, 함수 등을 만들 수 있습니다.
  • fill 함수 : 배열의 모든 요소를 지정된 값으로 채우는 데 사용됩니다.
    이 메서드는 원래 배열을 변경하고, 변경된 배열을 반환합니다.
  • reduce 함수 : 배열의 각 요소에 대해 주어진 함수를 실행하고,
    이전 요소의 결과와 현재 요소를 결합하여 최종 결과를 반환합니다.
profile
꾸준하게 하면 된다 언젠가는..?
post-custom-banner

0개의 댓글