본문 바로가기
취준일기

코딩테스트 준비 방법 - 개발자 취준일기 11

by 무언가 하는 소소 2022. 8. 22.
728x90
반응형

 

 

전편

☞ 2022.08.22 - [취준일기] - 코딩테스트 총체적 후기 및 진행방식 - 개발자 취준일기 10

 

 

바쁜 사람들을 위한 코딩테스트 준비 초간단 요약

더보기

1. 기간: 2개월

 

2. 사용한 책: 윤성우의 열혈 자료구조, 이것이 취업을 위한 코딩 테스트다

http://www.yes24.com/Product/Goods/6214396

 

윤성우의 열혈 자료구조 - YES24

자료구조는 어렵다고 알려져 있다. 하지만 문제는 어렵다는데 있는 것이 아니다. 어려워도 끝까지 공부할 수 있다면 문제가 되지 않는다. 문제는 끝까지 공부하지 못하는데 있다. 설명이 이치에

www.yes24.com

http://www.yes24.com/Product/Goods/91433923

 

이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24

나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생

www.yes24.com

 

3. 강의: 유튜브 혼자 공부하는 SQL

https://www.youtube.com/watch?v=0cRhit1EJM0&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm 

 

4. 사이트: 프로그래머스, 백준, 리트코드(SQL), 해커랭크(SQL),  SQLZoo(SQL)

https://school.programmers.co.kr/learn/challenges

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

https://leetcode.com/problemset/database/

https://www.hackerrank.com/domains/sql

 

Solve SQL Code Challenges

A special-purpose language designed for managing data held in a relational database.

www.hackerrank.com

https://sqlzoo.net/wiki/SQL_Tutorial

 

SQLZOO

 

sqlzoo.net

 

 

지금부터는 자세한 글 갑니다.

 

내가 코테 준비를 본격적으로 준비 한건 두달 정도이다. 처음 3주는 기본을 익히고 나머지 기간 동안에는 문제 풀이를 했다. 평소에 코딩은 많이 했는데 자료구조랑 알고리즘은 많이 까먹어서 복습이 필요했다.

 

 

1. 기본 익히기

처음 일주일은 "윤성우의 열혈 자료구조" (http://www.yes24.com/Product/Goods/6214396)를 보면서 자료구조를 익혔다. 다른 책은 보지 않아서 모르겟지만 자료구조는 이 책으로도 충분히 커버 가능하다. 그리고 일주일은 아주 유명한 책인 "이것이 취업을 위한 코딩테스트다" (http://www.yes24.com/Product/Goods/91433923)를 봤다. 유명한 책답게 한번 보고나면 코테에 나오는 웬만한 알고리즘은 다 익힐 수 있다. 나는 이 책을 볼 때 각 단원마다 설명만 읽고 실전문제는 물론 예제까지도 되도록이면 답안을 안보고 먼저 풀어봤다. 이런식으로 해야 알고리즘을 훨씬 빨리 익힐 수 있는 것 같다. 또 좋은 점은 정답 코드와 내 코드를 비교할 수 있는 것이다. 정답 코드를 보면서 '이렇게 짜야 깔끔하구나, 빨리 짤 수 있구나' 생각이 든다. 코테는 시간도 중요하니까! 그리고 두 책을 읽는 동시에 파이썬에서 필수적인 패키지 사용법도 익혔다. 일단 제일 기본적인건 리스트딕셔너리. 이 두개 못 다루면 코테 못본다. 여기에 셋(set)도 다룰 수 있으면 좋다. 그리고 필수적인 라이브러리 deque, heapq, itertools까지 익혔다. 이런 툴들이 있기때문에 많이들 코테에서 파이썬을 쓰는 거라 생각된다. 

 

 

2. SQL 배우기

책을 다 읽고 알고리즘을 익힌 후에는 SQL 공부와 문제풀이에 들어갔다. 먼저 SQL에 대해 말하자면 나는 SQL에 대한 지식이 전혀! 없었다. 그래서 서치하던 중에 유튜브에서 "혼자 공부하는 SQL(강의는 무료)" (https://www.youtube.com/watch?v=0cRhit1EJM0&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm)이라는 강의를 12강까지 봤다. 13강 이후는 코딩테스트랑 관련이 없어서 생략했다. 동영상이 길지 않아서 반나절만에 다 봤다. 실제로 12강까지 보면 웬만한 코테 SQL 문제는 대부분 풀 수 있다. 실제로도 내가 본 코테 중에 LG유플러스 빼고는 SQL 올쏠했다ㅎㅎ SQL 모르는데 코테 어떡하지? 하지말고 반나절만 투자해서 강의를 듣자. 강의를 다 들은 후에는 SQL 문법을 까먹지 않기 위해 문제 사이트에서 하루에 3개씩 매일매일 풀어줬다. 프로그래머스에도 SQL 문제가 있긴 한데 문제가 별로 없기 때문에 해외 사이트를 이용했다. 내가 이용한 사이트는 해커랭크 (https://www.hackerrank.com/domains/sql), 리트코드 (https://leetcode.com/problemset/database/), SQLZoo (https://sqlzoo.net/wiki/SQL_Tutorial)다. 

 

 

3. 문제풀이

코테 연습을 위해서는 프로그래머스와 백준을 썼다. 그리고 백준 문제를 풀 때도 프로그래머스에서 풀었다. 그냥 아무 문제나 들어가서 거기에 코드를 작성하면 되니까ㅎㅎ 프로그래머스는 내가 테스트케이스를 추가 할 수 있기 때문에 백준에 있는 테스트케이스를 긁어서 돌렸다. 실제로 대부분의 코딩테스트에서 IDE 쓸 수 없으니 웬만하면 문제풀이는 프로그래머스에서 하는 게 좋은 것 같다. 프로그래머스에서 계속 풀다보면 IDE 없이 코딩하는 것도 익숙해지고 디버깅도 익숙해진다. 가끔 프로그래머스에서 어떻게 디버깅을? 하는 분들이 있는데 프로그래머스는 리턴한 값을 터미널에 출력해준다. 그래서 그걸로 디버깅하는거다. 마치 print() 써서 디버깅 하는 것처럼. 내공이 쌓이면 실제로 print() 써서 디버깅하는 거랑 별 차이가 없다. 그리고 파이썬이 이때도 편하다. 변수를 여러개 리턴할 수 있으니까.

문제는 백준이랑 프로그래머스 둘다 풀었는데 초반에는 프로그래머스를 많이 풀고 후반에는 백준을 많이 풀었다. 백준이 아무래도 문제가 훨씬 많기 때문에.... 프로그래머스는 Level 2랑 3는 거의다 풀었고 Level 4는 골라서 몇개 풀었다. 그리고 백준은 브론즈1부터 골드4 사이에서 골라 풀었다.

코테에서 알고리즘 문제를 풀려면 어떤 알고리즘을 쓸지가 떠올라야 한다. 그래서 나는 되도록이면 내가 푸는 문제가 어떤 알고리즘을 써야하는지 모르는 상태에서 푸는 걸 선호했다. 그래도 처음 일주일 동안은 일단 문제 유형에 익숙해져야 할 것 같아서 프로그래머스에서 알고리즘 별로 나눠논 문제를 풀었다 (https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit). 그리고 이후로는 유형이 안 나눠져서 어떤 알고리즘을 써야하는지 스스로 생각해야하는 문제들을 풀었다. 프로그래머스는 애초에 Level 2와 Level 3 문제가 많지 않아서 문제를 고를 게 딱히 없었다. 백준에서는 내가 직접 문제를 골라야했는데 다음과 같은 방법으로 골랐다. https://solved.ac/problems/tags 링크에 들어가면 알고리즘 별로 문제가 나뉘어져있다. 여기서 알고리즘을 선택하면 문제 리스트가 쫙 나오는데 이걸 사람들이 많이 푼 순대로 정렬한다. 사람들이 많이 푼 문제 중 내가 원하는 난이도의 적당한 문제들을 찾아서 메모한다. 이걸 여러 알고리즘에 대해 다 반복한다. 그리고 메모한 문제들 순서를 다 섞는다. 마지막으로 순서대로 풀면 끝! 사람들이 많이 푼 문제들은 보통 괜찮은 문제들이고 구글링 했을 때 답도 잘 나온다. 또 이런식으로 하면 각 알고리즘 별로 문제를 균일하게 풀면서도 내가 푸는 문제가 어떤 알고리즘을 써서 푸는 문제인지 모르기 때문에 연습하기 딱 좋다. 

마지막으로 시간은 처음 일주일 동안은 문제수랑 문제당 시간에 상관 없이 하루에 5문제씩 풀었고 네시간 정도 걸린 것 같다. 이후에는 미리 4개의 문제를 골라놓고 세시간 이내에 푸는 것을 목표로 했다. 처음에는 힘겨웠는데 나중에는 실력이 늘어서 세시간에 여섯개도 풀 수 있다ㅋㅋ 그리고 잘 못푼 문제나 어려웠다고 생각되는 문제는 따로 메모해두었다. 나중에 전형기간에 한창 코테를 볼 때는 새로운 문제들 말고 이때 메모해두었던 문제들 위주로 풀었다.

 

여기까지 하면 내가 준비한 과정을 다 늘어놓은 것 같다. 궁금한게 있으면 댓글로! 

 

 

다음편

 2022.08.25 - [취준일기] - AI 면접 후기 - 개발자 취준일기 12

 

AI 면접 후기 - 개발자 취준일기 12

전편 링크 2022.08.24 - [취준일기] - 개발자 취준 일기 11 - 코딩테스트 준비 취업 너무 빡세다. 자소서도 쓰고 코딩테스트도 준비하는 것뿐만 아니라 AI 면접과 인적성까지 봐야한다니... 보통 코딩

dogfootja.tistory.com

728x90
반응형

댓글