병아리의 코딩 일기

[프로그래머스 강의 정리] 코딩테스트, 어떻게 준비해야 할까? 본문

자바 Java

[프로그래머스 강의 정리] 코딩테스트, 어떻게 준비해야 할까?

oilater 2023. 5. 13. 00:58
이선협 강사님의 자바스크립트 코딩테스트 광탈 방지 A to Z 강의를 요약 정리해보았습니다. 😃

알고리즘을 잘 공부하는 방법

 

문제를 풀 때 중요한 것

1. 항상 여러가지 풀이 방법이 있을 수 있다는 것을 기억하자

2. 항상 예외가 있을 수 있다는 것을 기억하자

3. 내가 풀어낸 답이 베스트인지 의심하자

4. 문제를 풀었다면 시행착오를 모두 기록하자

5. 다른 사람의 코드를 많이 보자. 생각하지 못했던 방법을 발견할 수 있다.

6. 쉽게 포기하지 말자. 하지만 도저히 모르겠다면 답을 보는 것도 좋은 방법이다.

 

 

그나마 재밌게 공부하는 법

1. 시각적인 사이트의 도움을 받자 (Visualgo, Algorithm Visualizer 등 알고리즘을 시각화한 사이트는 꽤 많다.)
2. 공부하는 자료구조 / 알고리즘이 어디에 쓰일 지 생각해보면서 공부하자

 

마음가짐

1. 알고리즘 마스터가 될 필요는 없다.

  • 회사는 업무를 수행 할 수 있는 기초 능력을 확인하고 싶을 뿐이다.
  • 대부분의 코딩 테스트는 대회용 알고리즘을 출제하지 않는다. 코딩 능력과 논리적인 사고가 중요한 문제를 출제하기에 문제 해결 능력을 기르는 것이 좋다.
  • 하지만 알고리즘이 중요한 회사에 지원한다면 더 많이 공부하는 것이 좋다.

2. 즉, 어디까지 공부할지 정하는 것이 매우 중요하다.

 


코딩 테스트를 잘 보는 법

 

자신의 성향을 파악하자

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

메모하기

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

디버깅은 필수

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

익숙해지기

  • 문제를 잘 읽는 것에 익숙해져야 한다.
  • 시간복잡도를 계산하는 것에 익숙해져야 한다.
    • 자잘자잘한 성능보다 시간복잡도가 훨씬 중요하다.
  • 항상 엣지 케이스를 생각하는 것에 익숙해져야 한다.

 


좋은 코드를 만드는 방법

 

간결하고 가독성 좋은 코드

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

가지치기를 했는가?

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

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

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

✳︎ 일관성을 유지했는가?

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

 

☀︎ 만약 코드를 안보는 코딩 테스트라면 스타일은 무시하고 풀자!
대부분의 대기업에서는 공채로 진행하는 코딩 테스트에서 코드까지 살펴보진 않는다.

 

728x90
반응형
LIST