Search
Duplicate

알고리즘 박살내기 - 01. 코테란 무엇인가?

간단소개
본 글은 알고리즘 공부를 체계적으로 진행하기 위해 멋데로 복습 겸 정리하는 글입니다.
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Algorithm
Scrap
태그
코딩테스트
파이썬
c++
9 more properties

들어가기 앞서서…

본 글은 코딩 테스트 겸 알고리즘을 제대로 공부하기 위하여 기존에 공부를 했던 내용을 다시 요약 복습하는 글입니다 :)
따라서 내용이 많이 생략 되어 있으며, 원문을 보시고 싶으시면 저의 블로그 원본 글을 참조해 주세요.
또한 본 내용은 이것이 취업을 위한 코딩테스트다 라는 교재의 내용 + 유튜브 인강을 기반으로 되어 있으니, 직접 학습하시는 것도 좋다고 생각됩니다.

코딩테스트란 무엇인가?

코딩 테스트란?

기업, 기관에서 직원이나 연수생을 선발하기 위한 목적으로 시행되며 ◦ 문제 해결 역량을 평가하며 ◦ 채점 시스템을 통해 응시자 수를 줄이는 효과를 갖고 있습니다.

코딩 테스트의 유형

온라인 코딩 테스트 ◦ 인터넷을 활용해 프로그래밍 역량을 평가하여 응시자를 선별하는 방식입니다. ◦ 대체로 타인과 문제풀이를 공유하지 않는 선에서 인터넷 검색을 허용합니다.
오프라인 코딩테 ◦ 시험장에 방문하여 치르는 시험입니다. ◦ 대체로 인터넷 검색이 허용 되지 않고, 회사에서 제공하는 환경에서 진행됩니다.

온라인 저지란?

체력을 키우기 좋은 훈련장. 꾸준히 계속 쌓아 올리는 것이 좋습니다.

코딩테스트 응시자 설문 조사

알고리즘 문제 풀이 방식의 코딩테스트에서 가장 유리한 프로그래밍 언어는 무엇인가? 라는 질문에 답변이 아래와 같았습니다. ◦ C : 6% ◦ C++ : 44% ◦ 파이썬 : 36% ◦ 자바 : 8% ◦ 기타 : 6%
이런 기준 와중에 파이썬을 써야 하는 이유는? ◦ 파이썬의 편리한 구조 ◦ 파이썬 기본 라이브러리가 가진 다양한 기능들 ◦ 알고리즘 대회가 아닌 기업에서 진행시 파이썬이 편리하게 작업이 가능하다. ◦ 시간이 많이 걸리는 경우를 생각하면 자바는 하지 않는게 낫다. ◦ 코테를 위한 처음 시작하는 경우는 파이썬이 빠르게 익힐 수 있다.
개발 방식의 코딩테스트에서 가장 유리한 프로그래밍 언어는? ◦ 파이썬 : 36% ◦ 자바 : 20% ◦ … 더 이상 이야기 안해도 될것 같죠?
시험의 유형 ◦ 과제형으로 기한을 두고 구현해오라는 경우가 있습니다. ◦ 과제형보단 짧은 시간으로 오프라인으로 모여서 지원자들에게 개발을 요구하는 방식이 있습니다.

온라인 개발 학습 환경 추천 사항

리플릿 : 온라인으로 치루어지는 코딩 테스트에 참여가 가능하며, 온라인 상황에서 바로바로 코딩을 할수 있다는 점에서 활용이 용이합니다.
️ 파이썬 튜터 : http://pythontutor.com/visualize.html 괴에에에엥장히 도움이 됩니다. 짜여진 로직을 시각화 해주어서 코드 전개를 명확하게 이해할 수 있어서 훌륭합니다. 처음 시작하는 입장에선 굉장히 이해하는데 도움이 많이 됩니다.
파이참 - 대표적인 오프라인 개발환경, 디버깅, 로컬에서관리하면서 해보고 싶으면 써보길 추천합니다.
Dev C++ - 파일 하나만 작성할 때 편리하며, 바로바로 컴파일로 확인할 수 있으니 오프라인 환경의 코테를 보듯 사용할 수 있는 IDE 입니다.

자신 만의 소스 코드 관리

알고리즘 코딩테스트를 준비하고 있다면 자신만의 소스코드를 관리하는 습관을 들이면 좋다고 합니다.
자신이 자주 사용하는 알고리즘 코드를 라이브러리화 하면 좋다고 합니다. 팀노트 예시!(나동빈 님의 레포지터리 입니다.) :  https://github.com/ndb796/Python-Competitive-Programming-Team-Notes

2019년 주요 코딩 테스트 유형

구현(33%) > BFS/DFS(20.9%) > 그리디(19.8%) > 다이나믹 프로그래밍, 정렬 (각각 8.2%) > 정렬(8%) > 이진탐색, 최단경로, 그래프 이론…