구현

Hyungseop Lee·2022년 12월 23일

[Study] 코딩 테스트

목록 보기
4/21

구현

머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정.
이를 위해 언어의 문법을 정확히 알고 있어야 하며 문제의 요구사항에 어긋나지 않는 답안 코드를 실수 없이 작성해야 한다.

  • 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제
  • 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제
  • 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제
  • 적절한 라이브러리를 찾아서 사용해야 하는 문제

완전 탐색, 시뮬레이션은 ‘구현’ 유형으로 묶을 수 있다.
완전 탐색(Brute Force Search) : 모든 경우의 수를 주저 없이 다 계산하는 해결 방법
시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계식 차례대로 직접 수행

구현 문제에 접근하는 방법

보통 구현 유형의 문제는 사소한 입력 조건 등을 문제에서 명시해주며 문제의 길이가 꽤 길다.
구현 유형의 문제는 C/C++나 Java로 문제를 풀 때 더 어렵게 느껴진다. 문자열을 처리하거나 큰 정수를 처리하는 문제가 출제되는 경우가 많은데, C/C++은 Python에 비하여 문자열 처리가 까다롭고, 큰 정수를 처리하는 라이브러리를 별도로 사용해야 하기 때문이다.

코딩 테스트 환경에서 점점 PyPy3를 지원하는 곳이 늘고 있다. PyPy3는 Python3의 문법을 그래도 지원하며, C/C++에 견줄만큼 Python3보다 실행 시간이 빠르다. 코딩 테스트 환경이 Python3만 지원하는지, 혹은 PyPy3도 지원하는지 확인하고 만약 PyPy3도 지원한다면 이를 이용하도록 한다.

C/C++에서 변수의 표현 범위

Python에서는 직접 자료형을 지정할 필요가 없으며 매우 큰 수의 연산 또한 기본으로 지원.
다만, Python에서의 실수형 변수는 다른 언어와 마찬가지로 유효숫자에 따라서 연산 결과가 원하는 값이 나오지 않을 수 있다.


Hash (Key-Value)

Stack/Queue

Heap

profile
Efficient Deep Learning

0개의 댓글