[알고리즘 & 자료구조] JavaScript 코딩테스트 기본 준비 사항 팁

17wolfgwang·2023년 9월 23일
0
post-thumbnail
  • 알고리즘 코테 준비하며 각각 대표적인 알고리즘(정렬, 최단 경로 등)에 따른 나만의 코드 템플릿을 미리 만들어 놓는 것이 좋다. → 라이브러리화하여 깃허브에서 관리!
  • 시간복잡도 : 알고리즘의 성능을 나타내는 척도, 입력에 대한 알고리즘 수행 시간 분석. 같은 기능에서 복잡도 낮을 수록 우수 → 이걸 어떻게 표시하느냐?
    • 빅오(Big-O) 표기법 : 가장 빠르게 증가하는 항 = 차수가 가장 큰항, 의 계수를 제외하고 표기. 3N^3 + 5N^2 + 1,000,000 일때 빅오 표기법으로는 O(N^3)로 표기
  • 문제보고 어떤 알고리즘으로 풀어야 할 지 설계 시 고려사항
    • 일반 컴퓨터 기준, JS 기준으로 1억번 연산에 1~5초 소요.
    • O(N^3) 알고리즘을 설계한 경우, N의 값이 5000이 넘는다면 약 125억번 = 최소 125초 소요.
    • 코테 문제에서 시간제한은 통상 1~5초 가량. 명시가 없다면 약 5초라고 생각하면 됨.
    • 시간 제한이 1초라면 일반적인 기준
      • N 범위가 500인 경우 : 시간 복잡도가 O(N^3)인 알고리즘 설계하면 됨
      • N 범위가 2000인 경우 : 시간 복잡도가 O(N^2)인 알고리즘 설계하면 됨
      • N 범위가 100000인 경우 : 시간 복잡도가 O(NlogN)인 알고리즘 설계
      • N 범위가 10000000인 경우 : 시간 복잡도가 O(N)인 알고리즘을 설계하면 문제 풀 수 있다.
profile
새로운 것을 두려워 하지 않고 꾸준히 뭐든 배워나가는 프론트 엔드 개발자 입니다 🧑‍💻

0개의 댓글