hyeonwooga.log
로그인
hyeonwooga.log
로그인
알고리듬 #2 | 코딩테스트 준비 방법
HyeonWooGa
·
2022년 7월 27일
팔로우
0
알고리즘
코딩 테스트
0
알고리듬
목록 보기
2/18
알고리즘을 잘 공부하는 법
문제를 풀 때 중요한 것
항상
여러가지 풀이 방법
이 있을 수 있다는 것을 기억하자
항상
예외가 있을 수 있다는 것
을 기억하자
내가 풀어낸 답이
베스트인지 의심
하자
문제를 풀었다면
시행착오를 모두 기록
하자
다른 사람의 코드
를 많이보자. 생각하지 못했던 방법을 발견할 수 있다.
쉽게 포기하지 말자. 하지만
도저히 모르겠다면 답을 보는 것
도 좋은 방법이다.
그나마 재밌게 공부하는 법
시각적인 사이트의 도움을 받자 (알고리즘을 비주얼라이즈 해주는 웹사이트)
공부하는 자료구조 / 알고리즘이 어디에 쓰일지 생각해보면서 공부하자
마음가짐
알고리즘 마스터가 될 필요는 없다. (제품을 잘 만드는 개발자가 목표이기 때문에)
회사는 업무를 수행 할 수 있는
기초 능력
을 확인하고 싶을 뿐이다.
대부분의 코딩 테스트는 대회용 알고리즘을 출제하지 않는다. 코딩 능력과 논리적인 사고가 중요한 문제를 출제하기에
문제 해결 능력
을 기르는 것이 좋다.
하지만 알고리즘이 중요한 회사에 지원한다면 더 많이 공부하는 것이 좋다. (게임 회사는 알고리즘이 중요)
즉,
어디까지 공부할지
정하는 것이 매우 중요하다.
코딩 테스트 잘 보는 법
자신의 성향을 파악하자
내가 어떤 사람인지 알아야 한다.
미리 생각하고 의사 코드를 작성해야 더 잘 풀리는 사람
일단 코드를 작성하면서 생각해야 더 잘 풀리는 사람
메모하기
긴장하면 풀다가 내가 무엇을 하려 했는지 잊을 수 있다.
코드에 주석을 달거나 노트에 메모하면서 풀자.
알고리즘은 논리적으로 표현할 수 있다.
헷갈리면 순서도를 그리면서 정리해보자.
디버깅은 필수
내가 예상한대로 동작이 안된다면 꼭 디버깅을 하자
로직 중간에
console.log
를 사용하여 값이 정상적인지 확인 할 수 있다.
외부 IDE 사용이 가능하다면 Node.js 의 디버그 모드를 사용하자.
익숙해지기
문제를 잘 읽는 것에 익숙해져야 한다.
수능에서 언어, 외국어 지문을 읽듯이
시간복잡도를 계산하는 것에 익숙해져야 한다.
자잘자잘한 성능보다 시간복잡도가 훨씬 중요하다.
항상 엣지 케이스를 생각하는 것에 익숙해져야 한다.
좋은 코드를 만드는 법
간결하고 가독성 좋은 코드
변수, 함수의 이름을 잘 정했는가?
중복 코드를 제거했는가?
함수형 프로그래밍도 좋은 방법
map, filter, reduce 와ㅏ 같은 고차함수 이용
가지치기를 했는가?
흔히 가지치기는 백트래킹과 같은 알고리즘에서 사용되지만 그 외 알고리즘에서도 중요하다.
사소한 로직이라면 성능이 크게 개선되지는 않지만 코드 리뷰에서 좋은 평가를 받을 수 있다.
자바스크립트를 잘 이용했는가?
자바스크립트로 코딩 테스트를 본다면 문법을 잘 활용해야 한다.
구조 분해 할당
Spread 오퍼레이터
일관성을 유지했는가? (정말 중요한 내용***)
잘 짰더라도 일관성 없는 코드보다 조금 더러워도 일관성있는 코드가 좋다.
var와 let 혼용 ❌
snake_case와 camelCase 혼용 ❌
변수명, 함수명을 줄임말로 쓰다가 어딘가에선 전부 적는 경우 ❌
제출전에 코드 스타일이나 변수명, 함수명을 꼭 확인하자 ✅
마무리
위의 알고리즘을 잘 공부하는 법을 꼭 기억하며 알고리즘 공부에 임해야 하겠습니다.
무엇보다 지금 공부하는 이 알고리즘이 실제 개발의 어떻게 쓰일지 생각하면서 해야겠습니다.
HyeonWooGa
Aim for the TOP, Developer
팔로우
이전 포스트
알고리듬 #1 | 자료구조와 알고리즘 중요한 이유
다음 포스트
알고리듬 #3 | 자료구조의 종류
0개의 댓글
댓글 작성