My/Small talk

코딩테스트 대비 공부방법 (파이썬)

IN.0 2020. 12. 29. 22:36
728x90
반응형

내 블로그를 찾아오시는 분들 대부분이 코딩 테스트 후기를 보고 오시는 것 같다.

(네이버 코테, 카카오 코테, 토스 코테, 라인 코테...)

그리고 댓글로 코딩테스트 혹은 비전공자 프로그래밍 공부 방법에 대해 물어보시는 분이 많아서 포스팅한다.

모든 사람에게 통용되는 방법은 아니겠지만, 비전공자로서 코딩 테스트를 대비하는 약간의 팁?

내가 했던 공부 방법과 문제풀이 사이트를 소개한다. 참고로 파이썬 기준!


일단 나는 Hello World! 가 뭔지도 모를 때 무작정 파이썬 수업부터 들었다.

처음부터 유료 강의 결제하기는 망설여져서 edwith에서 이지선 교수님 파이썬 기초 강의를 들었는데,

프로그래밍을 전혀 모르고 시작했지만 쉽게 설명해주시고

커리큘럼도 체계적이면서 필요한 부분만 빠르게 짚어주셔서 진도도 빨리 나갈 수 있었다.

혹시 필요하신 분이 있을까 싶어서 링크 ↓

www.edwith.org/sogang_python

 

기초 PYTHON 프로그래밍 강좌소개 : edwith

'기초 PYTHON 프로그래밍' 강의는 처음으로 프로그래밍을 접하는 수강생들을 대상으로 하는 PYTHON 문법 및 코딩 강의입니다. 이 과정을 통하여 PYTHON에서 어떻게 데이터... - 이지선

www.edwith.org

이 강의 듣다가 중간에 두잇 점프 투 파이썬 교재도 구매해서

강의랑 겹치는 파트를 따로 더 공부하니까 이해도 쉽고 스킬도 많이 늘었다.


이렇게 강의를 다 듣고 교재도 설렁설렁 보다 보면 실제로 코드를 쳐보고 싶어 진다.

이때 백준 사이트에 들어가서 단계별로 풀어보기 중에 1~7(입출력~문자열) 정도 풀어보면 된다.

www.acmicpc.net/step

 

단계별로 풀어보기

단계별은 @jh05013님이 관리하고 계십니다. 단계제목설명정보총 문제내가 맞은 문제1입출력과 사칙연산입력, 출력과 사칙연산을 연습해 봅시다. Hello World!112if문if문을 사용해 봅시다.53for문for문을

www.acmicpc.net

문제를 풀다 보면 쉽게 풀리는 것도 있고, 시간이 좀 걸리는 부분도 있다.

문제 풀고, 다른 사람 코드(주로 런타임이 짧은 코드)도 보면서 공부하다 보면

이제 좀 더 어려운 문제로 들어가도 되겠다 싶은 순간이 온다.


이때 자료구조와 알고리즘 공부를 시작하면 된다.

나는 알고리즘 교재는 따로 구매하지 않고 자료구조 책만 본 다음에

필요한 알고리즘은 그때그때 인터넷으로 검색해봤다.

book.naver.com/bookdb/book_detail.nhn?bid=13148682

 

자료구조의 이해

컴퓨터를 전공하는 학생들에게 자료구조는 아무리 강조해도 지나치지 않을 만큼 중요한 전공과목이다. 컴퓨터 전공의 근간이 되는 프로그래밍 언어를 잘 이해하고 있더라도 자료구조에 대한

book.naver.com

당시엔 파이썬 자료구조 책이 거의 없어서 이 책으로 공부하긴 했는데 '파이썬 알고리즘 자료구조'로 검색해보니까

더 괜찮은 책도 많이 나와있는 것 같다. 그중에 마음에 드는 것 하나 고르면 되겠다.

이 책에는 파이썬에서 잘 안 쓰는 개념인 '포인터'를 파이썬으로 직접 구현하는데,

이 부분이 되게 어려웠지만 성장도 많이 하게 된 부분이라 좋았다.


자료구조와 알고리즘 공부를 하고, 백준에서 관련 문제를 찾아서 풀어보면 거의 완벽하다.

그리고 백준에 각종 기업 코딩 테스트 문제도 있어서 (완전 똑같지는 않고 약간 변형) 풀어보면 좋다.

백준 말고 사용해본 사이트는 프로그래머스, 삼성 sw expert academy가 있다.

일단 프로그래머스는 단계별로 문제가 있고, 조금 더 기업 코테에 가깝다.

그리고 SQL 코테도 있어서 연습하기가 좋다.

만약 기업 코테에 SQL이 나온다고 하면 프로그래머스에 SQL 키트는 다 풀어보고 응시하는 게 도움이 될 것이다.

삼성 익스퍼트는 보통 삼성 역량테스트 준비를 위해 많이 사용한다.

그런데 이번 해(2020년) 코로나 때문에 한 번도 시험이 열리지가 않아서 안타깝다..ㅠ

익스퍼트 사이트도 괜찮은 문제가 많지만, 파이썬의 경우에 시간제한이 꽤 빡빡한 경우도 있다. (백준도 가끔)

아마 원래는 역량테스트 응시 언어에 파이썬이 없었는데, 2년 전? 쯤부터

파이썬이 허용되어서 아직 런타임 설정이 제대로 안된 것 같다.


그리고 기업 코테용 알고리즘 공부가 막막하다면 일단

브루트 포스 / BFS와 DFS / 트리 / 그래프 탐색 정도로 시작해서 점점 깊게 배우면 좋을 것 같다.

재귀의 경우에는 많은 문제에서 유용하게 쓰이지만 for문으로 돌려도 될 것을 재귀로 돌리면 시간이 매우 오래 걸리므로

효율성을 잘 따져보고 쓰는 게 좋다. 내가 재귀를 좋아해서 이렇게 시험을 망친 경우가 많다...ㅎ


약간의 팁이 될 수 있는 표준 라이브러리를 소개하자면

import math
import itertools
import collections

이렇게 3개가 있다. 각 기능은 직접 찾아보고 응용해보길 권장한다.

다만 기업에 따라 표준 라이브러리도 못쓰게 막는 곳도 있으니,

그런 경우를 대비해서 해당 기능을 따로 구현할 줄 알아야 한다.


 

생각나는 대로 쭉 써봤는데, 누군가에게 도움이 되었으면 좋겠다.

물론 이 글은 정답이 아니고, 더 나은 공부 방법도 있겠지만

나는 이렇게 공부했다~ 하고 공유하는 정도로 봐주면 좋겠다.

728x90
반응형