강의 요약/Chapter 3

[자료구조/알고리즘] 퀴즈 오답노트

HungryOcto 2022. 12. 19. 15:35

1. 개념 복습

  1. 재귀 함수의 정의
    자기 자신을 호출하는 함수
  2. 재귀의 기초 (Base case)
    재귀 함수를 구현할 때, 재귀의 탈출 조건 (=재귀 호출이 멈추는 조건)을 구성함
  3. 재귀를 사용하기 적합한 상황
    - 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우
    - 중첩된 반복문이 많거나 반복문의 중첩 횟수를 예측하기 어려운 경우
    - 반복문으로 작성된 코드를 더욱 간결하고 이해하기 쉽게 작성하고 싶은 경우
  4. JSON (JavaScript Object Notation) : 자바스크립트 객체 표기법
    - 데이터 교환을 위해 만들어진 객체 형태의 포맷
    - 자바스크립트의 객체와 다른 규칙을 가진다.
    - JSON.stringify를 적용하는 과정을 직렬화한다(serialize)고 함. (객체 -> 문자열)
    - JSON.parse를 적용하는 과정을 역직렬화한다(deserialize)고 함. (문자열 -> 객체)

2. 오답 노트

  1. 다음 중 n-factorial(n!)을 만들기 위해 빈칸에 들어가야 할 가장 적합한 코드를 고르세요.
// 입력값 n : number 타입의 정수 (num > 0)

function fac(n) {
  if ( (1)__________ ) {
    return (2)__________ ;
  }

  return (3)__________ ;
}
  • 정답 : (1) n === 1, (2) 1, (3) n * fac(n -1)
  • 오답 : (1) n === 0, (2) 0, (3) n * fac(n - 1)
  • 분석 : "가장" 적합한 코드를 고르라는 문제의 답에는 전자가 더 정답에 가깝기 때문.