새소식

Algorithm

[이것이 코딩테스트다] 아이디어를 코드로 바꾸는 구현

  • -
반응형

책의 2부에서 처음으로 등장하는 구현에 대해 공부하는 시간이다.

 

 

 

1. 구현


- 구현 : 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정

 

- 특징

  • 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제
  • 특정 소수점 자리까지 출력해야하는 문제
  • 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어서 리스트에 넣어야 하는(파싱을 해야하는) 문제
  • 라이브러리 사용 경험이 많다면 유리(ex. 순열 문제의 경우 itertools로 쉽게 짜기 가능)
  • 완전탐색 : 모든 경우의 수를 주저 없이 다 계산하는 해결 방법
  • 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행해야하는 문제 유형

 

- 메모리 제약 사항 고려하기!(with Python)

  • 대체로 코딩 테스트에서는 128 ~ 512 MB로 메모리 제한 BUT 때로는 수백만 개 이상의 데이터 처리하는 문제 출제됨
  • int 자료형 데이터 개수에 따른 메모리 사용량
데이터의 개수(리스트의 길이) 메모리 사용량
1,000 약 4KB
1,000,000 약 4MB
10,000,000 약 40MB
  • 시간 제한 1초/ 데이터 개수 100만개 => 시간 복잡도O(NlogN)이내의 알고리즘을 이용해 문제를 풀어야함.

 

- 문제 파악법

  • 사소한 입력 조건 등을 문제에 명시해주어 문제의 길이가 꽤 긴 편
  • 출력 기준이 까다로운 문제인가?

 

2. 구현 유형의 알고리즘 문제


- 예제 4-1 상하좌우

- 실전문제 왕실의 나이트

- 실전문제 게임개발

- Q 07  럭키 스트레이트

Q 08  문자열 재정렬

Q 09  문자열 압축

Q 10  자물쇠와 열쇠

Q 11  뱀

Q 12  기둥과 보 설치

Q 13  치킨 배달

Q 14  외벽 점검

 

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.