Sad Puppy 3 '코딩테스트/자료 구조 및 알고리즘' 카테고리의 글 목록 (2 Page) :: 개발자 아지트

3장 시간복잡도

시간복잡도는 구현한 알고리즘의 성능을 나타내는 일종의 지표이다. 

입력크기에 대한 연산 횟수의 상한을 의미한다. 

시간복잡도는 낮을 수록 좋다. 

 

  • 입력 크기에 따른 연산 횟수의 추이를 활용해 시간 복잡도를 표현하는 방법을 점근적 표기법이라 한다. 
  • 시간 복잡도를 빅오 표기법으로 나타내려면 데이터 개수 N에 대해 연산 횟수를 일반화한 후 최고차항을 남기고 나머지 차수는 신경쓰지 않는다. 

 

1주차의 공부 주제는 다음과 같다. 

 

  • 코딩 테스트를 준비하기 전에 알아야할 팁
  • 코딩 테스트를 효율적으로 준비하기 위해서 어떻게 해야하는가
  • 코딩 테스트 준비를 위해 프로그래머스를 적극 활용하기

 

코딩 테스트를 준비하기 전에 알아야할 팁

1) 코딩테스트 준비를 위한 사이트 선정 

 

코딩테스트의 문제들을 풀기위한 사이트를 선정해야한다. 

선정 기준은 다음과 같은 기준을 고려하면 좋다. 

  • 타인의 풀이를 볼 수 있는가?
  • 내가 생각한 테스트 케이스를 추가할 수 있는가? 

테스트에 필요한 코드를 작성하기 전에 문제 분석 단계에서 테스트 케이스를 고려할 때, 충분히 생각하여 테스트 케이스를 추가하여 공부하는 것이 좋다. 

 

 

2) 문제 풀다 막힐 경우에 취해야할 태도

 

코딩테스트 준비를 위해 문제를 풀 때, 문제를 다 풀지 못했을 경우가 생길 수 있다. 

이런 경우 상실감에 그냥 다른 문제 풀이로 넘어가거나, 그날 공부를 접지 말고 이것을 생각해봐야한다. 

 

내가 이 문제를 풀기위해서 어디까지 생각을 했는가?

 

이것을 생각하고 어떤 알고리즘을 적용하려고 했는지, 그렇게 생각한 근거는 무엇인지, 어떻게 구현하려고 했는지를 자신만의 공간에 기록해두는 것이 좋다 .

 


3) 나무보단 숲을 보자 = 코딩 테스트 준비를 위해 한정된 시간안에 효율적으로 준비를 마치자 

 

효율적으로 코딩테스트를 준비하기 위해서 문제 풀 때, 문제가 잘 안풀려서 1시간 이상 넘어가는 경우가 있다.

이럴 경우, 시험 보듯 공부하는 것이 좋다. 아무리 잘 안풀리는 문제라도 1시간 이상 고민하게 되면 코딩 테스트라는 시험 준비 자체에 효율이 떨어진다. 1시간이 넘어가면 다른 사람의 코드를 참고하든 하는 것이 좋다. 

 

4) 코딩 테스트 준비에 있어서 요행을 바라는것은 도둑놈 심보

 

짧은 시간 공부해서는 절대로 코딩 테스트에 통과할 수 없다. 

통상적으로 코딩 테스트는 최소 한 달에서 두 달 정도를 매우 집중해서 공부해야한다. 

 

5) 개념이나 원리 공부후 자신만의 언어로 개념 정리 하면 도움이 된다. 

 

코딩 테스트를 효율적으로 준비하기 위해서 어떻게 해야하는가

1)자신이 가장 잘 할 수 있는 프로그래밍 언어를 선택하자. 

2)문제 분석하는 방법을 연습하라 

3)의사 코드로 설계하는 연습을 몸에 익히자

4)문제를 푸는 사이트의 환경이 실제 시험 장소에서 제공하는 환경과 비슷한 프로그래머스 사이트 사용을 추천한다. 

코딩테스트는 Python언어로 준비할 예정이다. 

나는 벼락치기를 막고, 꾸준함을 효과적으로 지속하기 위하여, 스터디에 참가했다. 

이 게시판에서는 장 별로 공부한 내용을  정리한 게시글을 업로드할 예정이다. 


1주차
01. 코딩 테스트 효율적으로 준비하기 

02. 프로그래머스 완벽 활용 가이드

 

2주차

03. 알고리즘의 효율 분석

04. 코딩 테스트 필수 문법

05. 배열

 

3주차 

06. 스택

07. 큐

 

4주차 

08. 해시

09. 트리

 

5주차

10. 집합

11. 그래프

 

6주차

12. 백트래킹

13. 정렬

 

7주차

14. 시뮬레이션 

15. 동적 계획법

 

8주차

16. 그리디

 

+ Recent posts