ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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를 설정하고 배열의 크기는 무엇인지 고민

     

    알고리즘 코딩 테스트 준비과정에서 자신만의 소스코드 관리하는 습관들이기

    알고리즘 코드를 라이브러리화 하면 좋다.

Designed by Tistory.