알고리즘 잘 공부하는 법
- 항상 여러가지 풀이 방법이 있을 수 있다는 것을 기억하자.
- 항상 예외가 있을 수 있다는 것을 기억하자.
- 내가 풀어낸 답이 베스트인지 의심하자.
- 문제를 풀었다면
시행착오를 모두 기록하자
- 다른 사람의 코드를 많이보자. 생각하지 못했던 방법을 발견할 수 있다.
- 쉽게 포기하지 말자. 도저히 모르겠다면 답을 보는 것도 좋은 방법이다.
재밌게 공부하는 팁!
- 시각적인 사이트를 이용하기.
- 공부하는 자료구조 / 알고리즘이 어디에 쓰일지 생각해보면서 공부하자.
코딩테스트 잘 보는법
1. 자신의 성향을 파악하자.
- 미리 생각하고 의사 코드를 작성해야 더 잘 풀리는 사람.
- 일단 코드를 작성하면서 생각해야 더 잘 풀리는 사람.
2. 메모하기
- 긴장하면 풀다가 내가 무엇을 하려 했는지 잊을 수 있다.
(코드에 주석을 달거나 노트에 메모하면서 풀자.)
- 알고리즘은 논리적으로 표현할 수 있다.(헷갈리면 순서도를 그리면서 정리해보자.)
3. 디버깅은 필수
- 내가 예상한대로 동작이 안된다면 꼭 디버깅을 하자.
- 로직 중간에 'console.log()'를 사용하여 값이 정상적인지 확인 할 수 있다.
- 외부 IDE 사용이 가능하다면 NodeJS의 디버그 모드를 사용하자.
4. 익숙해지기
- 문제를 잘 읽는 것에 익숙해져야 한다.
- 시간 복잡도를 계산하는 것에 익숙해져야 한다.
- 자잘자잘한 성능보다 시간 복잡도가 훨씬 중요하다.
- 항상 엣지 케이스를 생각하는 것에 익숙해져야 한다.
👍 좋은 코드를 만드는 방법
1. 간결하고 가독성 좋은 코드
- 변수, 함수의 이름을 잘 정했는가?
- 중복 코드를 제거했는가?
- 함수형 프로그래밍도 좋은 방법이다.(map, filter, reduce와 같은 고차함수 이용하기)
2. 가지치기를 했는가?
- 흔히 가지치기는 백트래킹과 같은 알고리즘에서 사용되지만 그 외 알고리즘에서도 중요하다.
- 사소한 로직이라면 성능이 크게 개선되지는 않지만 코드 리뷰에서 좋은 평가를 받을 수 있다.
3. JS를 잘 이용했는가?
- JS로 코딩 테스트를 본다면 문법을 잘 활용해야 한다.
4. 일관성을 유지했는가?
- 잘 짰더라도 일관성 없는 코드보다 조금 더러워도 일관성있는 코드가 좋다.
- var 와 le을 혼용 하거나
- snake_cass 와 camelCass를 혼용 하거나
- 변수명, 함수명을 줄임말로 쓰다가 어딘가에선 전부 적는 경우