• 자연수 N 입력시, 1부터 N까지의 합을 출력하라

작성 코드 1

  • for문을 사용해서 1부터 N까지의 값을 누적해서 더하였다
  • 시간 복잡도 : O(n)

    const solution = (n) => {
      let answer = 0;
    
      for (let i = 1; i <= n; i++) {
        answer += i;
      }
      return answer;
    };
    


작성 코드 2

  • 수학 공식으로 풀기
  • 시간복잡도 O(1)

    const solution = (n) => (n * (n + 1)) / 2;
    

ChatGpt에 물어본 것

  • reduce함수를 사용해서 푸는 방법을 질문해봄
  • 시간복잡도: O(n)

    const n = 5;
    const arr = Array.from({ length: n }, (_, i) => i + 1);
    console.log(arr); // [1, 2, 3, 4, 5]
    

    Array.from({ length: n }, mapFn)

    • Array.from()배열을 만들거나 가공할 때 사용하는 함수
    • 첫 번째 인자는 { length: n } 길이가 n인 유사 배열 객체 (값은 undefined)
    • 두 번째 인자는 map처럼 작동하는 함수 (각 인덱스를 원하는 값으로 바꿈)
      • _: 첫 번째 인자는 요소값인데, 여기선 안 쓰므로 _로 무시함
      • i: 두 번째 인자는 현재 인덱스 (0부터 시작)
    • 자주 쓰는 패턴
    목표 코드
    0부터 n-1까지 배열 Array.from({ length: n }, (_, i) => i)
    1부터 n까지 배열 Array.from({ length: n }, (_, i) => i + 1)
    n개의 0으로 채운 배열 Array.from({ length: n }, () => 0)

댓글남기기