본문 바로가기
Coding Test/JavaScript

[Javascript] (재귀) 이진수 만들기

by Chaedie 2022. 11. 8.
728x90

[Javascript] (재귀) 이진수 만들기

어제 코테를 봤는데 재귀 문제가 2문제 나왔습니다. 부트캠프에서 공부할 때 구현 문제는 다 쉽게 푸는데 재귀 문제가 나왔을 때 처음으로 못 풀어서 공부했던 기억이 있는데요, 같은 문제가 코테에 나왔습니다. 기본 테스트 케이스는 다 맞췄지만 효율성 테스트에서 TLE가 떠서 결국 부분점수로 제출하고 끝을 냈습니다.

코테가 어렵기로 유명한 회사의 시험을 친것도 아닌데 당황하는 경험을 하니 부족함을 많이 느꼈습니다.

그래서 재귀와 재귀를 활용한 그래프 탐색을 정복하기로 결정했습니다. 프론트엔드 개발자로써 화면 구현에 지금 당장 알아야 하는 내용이 아닐지 모르지만 지난 네부캠 탈락 후기에 적었듯이 '코테'라는 관문 때문에 내가 원하는 교육이나 입사를 못하게 되는 억울한 상황은 만들고 싶지 않아 정복하기로 결정했습니다.

내 풀이

function solution(n) {
  let answer = '';
  function DFS(L) {
    if (L === 0) return;

    DFS(~~(L / 2));
    answer += L % 2;
  }
  DFS(n);
  return answer;
}

console.log(solution(11));

배운 점, 느낀 점

이전엔 재귀가 이해가 안되었는데 차근 차근 콜스택에 쌓이는걸 그려보고, 재귀함수 콜의 앞에 로직이 있는것과 뒤에 로직이 있는것을 각각 적어보며 차이점을 살펴보니 제 힘으로 간단한 이진수 문제는 풀수 있게 되었습니다.

이렇게 간단한걸 왜 못했지? 라는 생각도 들지만 결국 이런 경험이 있으니 내가 못하는 일에 도전해보는 도전적인 사람이 될 수 있는거겠죠? (작은 실패와) 작은 성공에 감사합니다.

댓글