1강 :: 코딩 테스트란 무엇인가?
코딩 테스트의 유형
1. 온라인 코딩 테스트
- 인터넷 활용해 프로그래밍 역량 평가
- 대체로 타인과 문제 풀이를 공유하지 않는 선에서 인터넷 검색 허용
2. 오프라인 코딩 테스트
- 시험장에 방문하여 치르는 시험
- 대체로 인터넷 검색이 허용되지 않고 회사에서 제공하는 컴퓨터 환경을 이용함
▶️시험이 여러 단계로 나누어질 경우 온라인 → 오프라인 시험 혹은 코딩 테스트 → 면접 식으로 이루어짐
온라인 저지 (Online Judge)
- 해외
코드셰프 https://www.codechef.com/
- 국내
백준 온라인 저지 https://www.acmicpc.net/
프로그래머스 https://programmers.co.kr/
SW Expert Academy https://swexpertacademy.com/main/main.do
🌟백준, 릿코드
- 초보자 = 코드업
알고리즘 문제 풀이 방식 코딩테스트에서 가장 유리한 프로그래밍언어?
C++ → python → Java → C → ...
- C++ 는 실질적인 메모리 관리 측면에서 자유도가 높고 실행 속도가 빠르다
- python은 짧고 간결한 코드와 다양한 표준 라이브러리 덕분에 사용이 편리하다
알고리즘 대회가 아니라 일반 기업의 코딩테스트에 적합
- Java는 국내 프로그래머들이 많이 쓰는 언어 중 하나
C++에 비해 수행시간이 느린 편, python에 비해 코드가 긴 편 → 코딩테스트에 상대적으로 불리
평소에 배워온 언어라면 선택
프로그램 개발 방식의 코딩 테스트에서 가장 유리한 프로그래밍 언어?
python → Java → C ++ → C → kotlin → ...
- 온라인 코딩 테스트가 치뤄진 이후에 지원자의 수가 많이 좁혀진 다음에 자주 사용되는 테스트 방식
- 기한을 주고 그 기한 내에 특정 기능을 하는 프로그램을 개발해와야 하는 프로그램 개발 과제형
혹은 특정 장소에 모여서 특정 시간 동안 문제에서 제시된 요구사항을 만족하는 프로그램 개발
python의 특장점
- 어떠한 서버의 API를 호출하는 등의 다양한 통신 라이브러리를 활용해야하는 경우가 많아 그런 측면에서 python이 유리한 언어이다
- 특히 python은 특정 서버에게 요청을 보내는 request 라이브러리, 서버에서 반환된 json 형식의 데이터를 쉽게 파싱할 수있는 json라이브러리 등이 표준 라이브러리로 제공되어 상대적으로 유리하다
- java언어를 사용해 android 앱 개발을 하거나 특정 언어를 반드시 이용해야하는 일부 상황을 제외하고는 python이 유리하다
온라인 코딩 테스트를 위해
온라인 개발 환경에 적응하기
리플릿 https://replit.com/languages/python3
- 별도의 회원가입 없이도 코드 실행 및 결과 확인이 가능하다
- 다른 사람에게 공유도 쉽다
코드 실행 과정 확인하기
파이썬 튜터 https://pythontutor.com/python-debugger.html#mode=edit
오프라인 개발 환경
파이참 https://www.jetbrains.com/ko-kr/pycharm/download/?section=windows
- python을 활용하는 다양한 데모 프로그램에서도 많이 사용됨
- 파이썬으로 문제 풀 때 디버깅 및 오프라인 작업을 원할 경우
굳이 파이참을 권하지 않는 이유
- 일반적으로 온라인 코딩 테스트에서는 소스 코드를 단 하나의 파일로 제출
- 일반적인 개발과 알고리즘 코딩 테스트 코드 작성 방식이 다르긴 함
C, C++
- Dev C++ https://sourceforge.net/projects/orwelldevcpp/files/
자신만의 소스코드 관리하기
- 자주 사용하는 알고리즘 코드를 라이브러리화 하면 좋다
- 팀노트: 알고리즘 문제 해결을 위한 자신만의 알고리즘 노트
- 국제 알고리즘 대회 같은 경우 3명 정도의 인원이 한 팀 → 실제 오프라인 본선 대회에서는 그 팀에서 자주 사용하는 알고리즘 코드를 특정 분량까지 가져올 수 있도록 함
- 각 유형별로 문제를 풀다보면 유형에 따라서 비슷한 코드 형식을 많이 사용하게 된다, 온라인 코딩 테스트 시 도움이 될 것
- 예시 https://github.com/ndb796/Python-Competitive-Programming-Team_Notes
인데 안 나온다...
경향
2020년 기준 대부분의 대기업이 알고리즘 코딩 테스트 시행
2 ~ 5시간 정도 주어지며, 여러개의 정해진 알고리즘 문제를 풀도록 함
출제 빈도가 높은 유형
- 그리디 (쉬운 난이도)
- 구현
- DFS/BFS를 활용한 탐색
- 하나를 빨리 푸는 것 보다 모두 맞추는 게,,
출처 : https://youtu.be/Mf0pYO8VAZk?si=GFEFQSrq_6mzhrCj