본문 바로가기
개발/코딩테스트

[Python] 이것이 코딩테스트다 with 파이썬 - 구현이란?

by seopport 2023. 1. 20.
728x90
반응형

* 해당 문제 및 해설은 "이것이 코딩 테스트 다 with 파이썬" 책을 기준으로 요약 및 정리 하여 작성하였습니다.  

 

http://www.yes24.com/product/goods/91433923

 

이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24

나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생

www.yes24.com


아이디어를 코드로 바꾸는 구현

구현 이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정' 이다. 
구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념이다.

대부분의 알고리즘 교재에서는 구현을 별도의 유형으로 다루지 않습니다.
하지만 코딩 테스트에서는 구현이 중심이 되는 문제가 자주 출제 되기 때문에 나동빈 선생님께서, 다른 알고리즘을 배우기 전에 다루고자 한다고 적혀 있습니다.

 

그렇다면 어떤 문제가 구현하기 어려울까?

  • 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제
  • 특정 소수점 자리까지 출력해야 하는 문제
  • 문자열이 입력으로 주어졌을 때, 한 단위 문자로 끊어서 리스트에 넣어야 하는 (파싱을 해야 하는 문제) 등

필자도 어떻게 풀면 될지 대략 감은 오지만, 막상 코드로 옮기려니 무엇부터 작성해야 할 지 모를 때 답답한 경험이 있습니다.

 

예시)

 

책에서는 N 개의 원소가 들어 있는 리스트에서 R 의 원소를 뽑아 한 줄로 세우는 모든 경우 (순열) 를 구하는 문제가 있다고 가정해보자.

  • 무작정 구현하기 (for, set 활용)
  • 파이썬 라이브러리 itertools 사용하기 등

언어의 문법을 잘 이해하고 경험이 있어야만 바로 떠올릴 수 있다.

 

이 책에서는 완전 탐색, 시뮬레이션 유형을 모두 '구현' 유형으로 묶어서 다루고 있다.

  • 완점 탐색
    • 모든 경우의 수를 주저 없이 다 계산하는 해결 방법
  • 시뮬레이션
    • 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행

 

주의점

파이썬은 다른 언어에 비해서 구현상의 복잡함이 적은 편이지만, 데이터 처리량이 많을 대는 꼭 메모리 제한을 고려하도록 하자.
파이썬은 다른 언어와 비교 했을 때, 프로그램 실행 시간이 긴 편입니다.

 

  구현난이도 프로그램 실행 시간
파이썬 쉬운 편 긴 편
PyPy 쉬운 편 다소 짧은 편
C/C++ 어려운 편 짧은 편

 

TIP

Pypy3 는 파이썬3 의 문법을 그대로 지원하며, 대부분 파이썬 3보다 실행 속도가 더 빠르다. 
다르게 말하면, Pypy3 를 선택한다면 파이썬 3와 동일한 코드를 제출해서 실행 시간을 줄일 수 있다 라는 말이다.

 

필자는 왜 파이썬을 선택했는가?

1. 가장 큰 이유는 간단함보편성이다.
   구현 문제는 위에서 말씀드린 것처럼, 자신의 생각을 녹여내는 코드를 구현할 수 있다.
   실제 구현 문제들을 풀고, 답안을 비교해보면 사람마다 코드가 조금씩 다르다
   (똑같은 문제를 다른 식으로 풀이한 것을 보고 감탄했던 기억이 굉장히 많고, 승부욕이 올랐던 경험이 있습니다.)
   만약 문제를 풀기 어려워 답안을 찾기에도 굉장히 쉽고, 짧은 시간 안에 성적을 낼 수 있는 가장 효율이 높은 언어라고 생각한다.

2. 실제로 필자는 빅데이터 분석기사를 이번 년도 목표로 하고 있다.
   빅데이터 분석기사 실기에 언어를 파이썬으로 잡고, 진행할 계획이기 때문에 익숙함을 늘리고자 한다.
   (독자분들 께서도 같이 가시지요오!)

 

 

논외. 빅데이터 분석기사 일정

  • 저도 이 글을 읽으시는 분들도 빅데이터 분석기사 제6회에 합격할 예정이시니까, 일정 참고 하세요! (필기 접수 3.6~10)

728x90
반응형