본문 바로가기

내직업은 IT종사자/알고리즘.자료구조

[알고리즘 코딩테스트 꿀팁] 코딩테스트 잘보는 법 TIP

반응형

 

예상 할 수 있듯이 특별한 꼼수가 있는 것은 아니다.

그리고 다 아는 얘기, 당연하지만 쉽게 간과할 수도 있는 내용이라고 생각한다.

 

 

코딩 테스트 사이트:
백준코딩: https://www.acmicpc.net/
프로그래머스: https://programmers.co.kr/
해커랭크 : https://www.hackerrank.com/
린트코드 : https://www.lintcode.com/
리트코드 : https://leetcode.com/

 

 

 

 

[문제를 풀 때 TIP]

  • 여러가지 풀이방법이 있을 수 있다는 것을 생각하기. (생각이 고착화 되어 막힌다면 풀이시간이 길어질 수도, 풀지 못할 수도 있다.)
  • 항상 예외가 있을 수 있다는 것을 생각하기. (예측케이스를 고려하지 못하면 틀릴 수 도 있다.)
  • 더 효율적인 풀이가 있을 수도 잇다.
  • 시행착오를 모두 기록하기. 오답노트를 기록하면 다음 번 유사 유형에 큰 도움이 된다.
  • 다름사람의 코드를 많이 보자.  어떻게 이렇게??? ㅇ_ㅇ 생각하지 못했던 방법을 발견할 수 있다.
  • 쉽게 포기하지 말자!  최소한 2-3시간 고민. 하지만 도저히 모르겠다면 질질 끌지 말고 정답을 보는게 정신건강에도 좋다.

 

[공부 할 때 TIP] 

 

visualising data structures and algorithms through animation - VisuAlgo

VisuAlgo is free of charge for Computer Science community on earth. If you like VisuAlgo, the only "payment" that we ask of you is for you to tell the existence of VisuAlgo to other Computer Science students/instructors that you know =) via Facebook/Twitte

visualgo.net

  • 2. 공부하는 자료구조/ 알고리즘이 실제로 우리가 이용하는 서비스 어디에 쓰일지 생각해보면서 공부하자

 

 

[마음가짐 TIP] 

  •  알고리즘 마스터가 될 필요는 없다. 제품을 잘만드는 개발자가 되고싶은거지 알고리즘을 연구하는 학자가 되고싶은건 아니니까요?
  •  코딩 능력과 논리적인 사고를 판단하기 위한 문제가 출제 되기에 문제 해결 능력을 기르는 것이 좋다.

 

[코딩테스트 잘보는 법 TIP] 

  • 자신의 성향을 파악하자 (둘 중에 맞고 틀린 것은 없으나 성향을 빠르게 파악하는 것이 문제 접근에 큰 도움이 되는 것 같다!))
    • 유형1. 미리 얼추 결과값 도출까지 생각하고 코드를 작성해야 더 잘 풀리는 사람
    • 유형2. 일단 코드를 작성하면서 생각해야 더 잘 풀리는사람
  • 메모하기
    • 시험이 시작되면 긴장을 하기에 문제가 무엇인지 정확하게 파악이 안될 수 있고, 내가 방금 전에 머릿속에 생각했던 것들이 또 생겨난 생각에 덮여 잊혀버릴 수도 있다.
    • 주석이나 메모장 활용하기
    • 헷갈리면 순서도 그리면서 정리해보기
  • 디버깅은 필수!
    • 예상대로 동작이 되지 않으면 꼭 디버깅을 하기
    • 작은 단위로 구현 후 디버깅으로 "여기까지는 해결" 마침표 마음에 찍고 넘어가기
    • 디버깅 툴 활용이 불가능하다면 중간중간에 프린트 문으로 값 찍어보기로 디버깅
  • 익숙해지기
    • 문제 읽기에 익숙해져야 한다.  코딩테스트 지문은 길고 이해하기가 어렵고 집중도 잘안된다 ㅠㅠ(개인적으로는..)   여러 문제를 경험해 보면서 중요한 것만 요약해서 읽기 연습이 중요하다.
    • 예시 케이스를 생각하는 것에 익숙해져야 한다.
    • 시간복잡도 계산 하는 것에 익숙해져야 한다.

 

[좋은 코드 만드는 법 TIP] 

  • 간결하고 가독성 좋은 코드
    • 변수, 함수의 이름을  맞게 정의 했는가
    • 중복 코드를 제거 했는가
    •  함수형 프로그래밍을 활용하는 것도 좋다
      • 예: javascript  map, filter, reduce같은 고차함수 적극 활용
    • 가지치기를 했는가?
      • 흔히 가지치기는 백트래킹과 같은 알고리즘에서 사용되지만 그 외 알고리즘에서도 중요하다.
      • 작고 짧은 로직이라면 성능에 크게 영향을 미치진 않지만 코드리뷰에서 좋은 평가를 받을 수 있다.
    • 일관성을 유지했는가?
      • 잘 짯더라도 일관성 없는 코드보다 조금 더러워도(?) 일관성 있는 코드가 좋다.
      • 변수 선언 키워드를 혼용해서 사용하지 않았는지 체크 (예: javascript var, let혼용)
      • 네이밍 규칙을 일관되게 사용 했는지 체크(camelCase, PascalCase, kebab-case, snake_case)

 

 

참고:  [인강] 코딩테스트 광탈방지 A to Z : javascript 

https://school.programmers.co.kr/learn/courses/13213/13213-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B4%91%ED%83%88-%EB%B0%A9%EC%A7%80-a-to-z-javascript

 

코딩테스트 광탈 방지 A to Z : JavaScript

코딩테스트 광탈 방지 A to Z : JavaScript 자료구조와 알고리즘 기본기를 다지고 문제 풀이 꿀팁까지 한 번에 가져가요! 자료구조와 알고리즘 기초부터 코딩 테스트 대표 유형 문제 풀이까지 “A to Z

school.programmers.co.kr

 

공부한 내용에 개인적인 생각을 더한 것으로 주관적이며

틀린 부분이 있을 수 있습니다.

언제나 피드백은 환영입니다 (*˙˘˙)♡

 

 

반응형