-
2022.03.03 - [이코테] 코딩테스트 개요개발/Python 2022. 3. 3. 16:59
코딩 테스트
일종의 문제 풀이 시험. 공개 채용을 하는 기업에서 응시자의 수를 효과적으로 줄이기 위한 방법
- 온라인 코딩 테스트
- 오프라인 코딩 테스트
국내 추천 사이트
- 백준 온라인 저지(BOJ) / https://www.acmicpc.net
- 코드업(CodeUp) / https://codeup.kr
- 프로그래머스(Programmers) / https://programmers.co.kr
- SW Expert Academy / https://swexpertacademy.com
알고리즘 성능 평가
- 시간 복잡도 : 알고리즘 수행 시간 분석
작성한 프로그램이 모든 입력을 받아 이를 처리하고 실행 결과를 출력하는 데까지 걸리는 시간.
그래서 해당 시간 안에 동작하는 프로그램을 작성해야 정답 판정을 받을 수 있음.
시간 복잡도를 표현할 때 Big-O 표기 법 사용.
- 공간 복잡도 : 알고리즘 메모리 사용량 분석
Big-O 표기법 사용. 메모리 사용량에도 절대적 제한이 있음
일반적 메모리 사용량 기준은 MB 단위로 제시
보통 코딩 테스트에서 사용량 128~512MB 정도로 제한. 데이터 개수가 1000만 단위가 넘어가지 않도록 설계
알고리즘 설계 Tip
- 일반적으로 CPU 기반의 개인 컴퓨터나 채점용 컴퓨터에서 연산횟수가 5억을 넘어가는 경우
C언어 : 1 ~ 3초
파이썬 : 5~ 15초
O(N³)의 알고리즘 설계한 경우, N의 값이 5,000이상 들어가면 1250억
- 코딩테스트 문제에서 시간제한은 통상 1~5초 가량
문제에 명시되어 있지 않은 경우 대략 5초 정도라고 생각하고 풀기
- 문제에서 가장 먼저 확인해야 하는 내용 : 시간제한(수행시간 요구사항)
알고리즘 문제 해결 과정
1. 지문읽기 및 컴퓨터적 사고
2. 요구사항 분석
3. 문제 해결을 위한 아이디어 찾기
4. 소스 코드 설계 및 코딩
코딩 전에 엄청 detail 하게 생각을 많이하는 것이 좋다.
ex) 해시 테이블을 쓰고, 정렬을 쓰자 --> 어떻게 index를 설정하고 배열의 크기는 무엇인지 고민
알고리즘 코딩 테스트 준비과정에서 자신만의 소스코드 관리하는 습관들이기
알고리즘 코드를 라이브러리화 하면 좋다.
'개발 > Python' 카테고리의 다른 글
2022.04.29 - [이코테] 구현 (0) 2022.04.29 2022.03.03 - [이코테] 파이썬 기초 문법(2) - 파이썬의 자료형 (0) 2022.03.03 2022.03.03 - [이코테] 파이썬 기초 문법(1) - 파이썬의 자료형 (0) 2022.03.03