알고리듬 #2 | 코딩테스트 준비 방법

HyeonWooGa·2022년 7월 27일
0

알고리듬

목록 보기
2/18

알고리즘을 잘 공부하는 법

문제를 풀 때 중요한 것

  1. 항상 여러가지 풀이 방법이 있을 수 있다는 것을 기억하자
  2. 항상 예외가 있을 수 있다는 것을 기억하자
  3. 내가 풀어낸 답이 베스트인지 의심하자
  4. 문제를 풀었다면 시행착오를 모두 기록하자
  5. 다른 사람의 코드를 많이보자. 생각하지 못했던 방법을 발견할 수 있다.
  6. 쉽게 포기하지 말자. 하지만 도저히 모르겠다면 답을 보는 것도 좋은 방법이다.

그나마 재밌게 공부하는 법

  1. 시각적인 사이트의 도움을 받자 (알고리즘을 비주얼라이즈 해주는 웹사이트)
  2. 공부하는 자료구조 / 알고리즘이 어디에 쓰일지 생각해보면서 공부하자

마음가짐

  1. 알고리즘 마스터가 될 필요는 없다. (제품을 잘 만드는 개발자가 목표이기 때문에)
    • 회사는 업무를 수행 할 수 있는 기초 능력을 확인하고 싶을 뿐이다.
    • 대부분의 코딩 테스트는 대회용 알고리즘을 출제하지 않는다. 코딩 능력과 논리적인 사고가 중요한 문제를 출제하기에 문제 해결 능력을 기르는 것이 좋다.
    • 하지만 알고리즘이 중요한 회사에 지원한다면 더 많이 공부하는 것이 좋다. (게임 회사는 알고리즘이 중요)
  2. 즉, 어디까지 공부할지 정하는 것이 매우 중요하다.

코딩 테스트 잘 보는 법

자신의 성향을 파악하자

  1. 내가 어떤 사람인지 알아야 한다.
    • 미리 생각하고 의사 코드를 작성해야 더 잘 풀리는 사람
    • 일단 코드를 작성하면서 생각해야 더 잘 풀리는 사람

메모하기

  1. 긴장하면 풀다가 내가 무엇을 하려 했는지 잊을 수 있다.
    • 코드에 주석을 달거나 노트에 메모하면서 풀자.
  2. 알고리즘은 논리적으로 표현할 수 있다.
    • 헷갈리면 순서도를 그리면서 정리해보자.

디버깅은 필수

  1. 내가 예상한대로 동작이 안된다면 꼭 디버깅을 하자
    • 로직 중간에 console.log 를 사용하여 값이 정상적인지 확인 할 수 있다.
    • 외부 IDE 사용이 가능하다면 Node.js 의 디버그 모드를 사용하자.

익숙해지기

  1. 문제를 잘 읽는 것에 익숙해져야 한다.
    • 수능에서 언어, 외국어 지문을 읽듯이
  2. 시간복잡도를 계산하는 것에 익숙해져야 한다.
    • 자잘자잘한 성능보다 시간복잡도가 훨씬 중요하다.
  3. 항상 엣지 케이스를 생각하는 것에 익숙해져야 한다.

좋은 코드를 만드는 법

간결하고 가독성 좋은 코드

  1. 변수, 함수의 이름을 잘 정했는가?
  2. 중복 코드를 제거했는가?
  3. 함수형 프로그래밍도 좋은 방법
    • map, filter, reduce 와ㅏ 같은 고차함수 이용

가지치기를 했는가?

  1. 흔히 가지치기는 백트래킹과 같은 알고리즘에서 사용되지만 그 외 알고리즘에서도 중요하다.
  2. 사소한 로직이라면 성능이 크게 개선되지는 않지만 코드 리뷰에서 좋은 평가를 받을 수 있다.

자바스크립트를 잘 이용했는가?

  1. 자바스크립트로 코딩 테스트를 본다면 문법을 잘 활용해야 한다.
    • 구조 분해 할당
    • Spread 오퍼레이터

일관성을 유지했는가? (정말 중요한 내용***)

  1. 잘 짰더라도 일관성 없는 코드보다 조금 더러워도 일관성있는 코드가 좋다.
    • var와 let 혼용 ❌
    • snake_case와 camelCase 혼용 ❌
    • 변수명, 함수명을 줄임말로 쓰다가 어딘가에선 전부 적는 경우 ❌
    • 제출전에 코드 스타일이나 변수명, 함수명을 꼭 확인하자 ✅

마무리

위의 알고리즘을 잘 공부하는 법을 꼭 기억하며 알고리즘 공부에 임해야 하겠습니다.

무엇보다 지금 공부하는 이 알고리즘이 실제 개발의 어떻게 쓰일지 생각하면서 해야겠습니다.


profile
Aim for the TOP, Developer

0개의 댓글