Ch4.구현
Ch4.구현
1. 아이디어를 코드로 바꾸는 구현
피지컬로 승부하기
- 구현 유형의 문제 = 피지컬을 요구하는 문제
- 까다로운 구현 문제 유형
- 코드가 길어지는 문제
- 특정 소수점 자리까지 출력해야 하는 문제
- 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어서 리스트에 넣어야 하는 문제
=> 사소한 조건 설정이 많은 문제일수록 코드로 구현하기 까다로움.
- 유형:
- 완전 탐색: 모든 경우의 수를 주저 없이 다 계산하는 해결 방안
- 시뮬레이션: 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행
구현시 고려해야 할 메모리 제약 사항
C/C++에서 변수의 표현 범위
- int
- 4바이트
- -2,147,483,648 ~ 2,147,483,648
- long long
- 8바이트
- -9223372036854775808 ~ 9223372036854775808
- BigInteger
- 외부 라이브러리로 제공
⭐파이썬에서는 신경 쓸 필요X
파이썬에서 리스트 크기 ⭐코딩 테스트에서는 128 ~ 512 MB로 메모리 제한
|데이터의 개수(리스트의 길이)|메모리 사용량| |——|—| |1000|약 4KB| |1000000|약 4MB| |10000000|약 40MB| => 크기가 1,000만 이상인 리스트는 이용할 수 X
채점 환경
- 코딩 테스트 환경의 채점 시스템에서의 시간 제한과 메모리 제한 정보 확인!
- ⭐파이썬으로 제출한 코드가 1초에 2000만 번의 연산을 수행한다고 가정
ex) 시간 제한이 1초 / 데이터의 개수가 100만 개 -> 일반적으로 시간 복잡도 O(NlogN) 이내의 알고리즘을 이용해야 한다.
⭐알고리즘 문제를 풀 때는 시간 제한과 데이터의 개수를 먼저 확인한 뒤에 이 문제를 어느 정도의 시간 복잡도의 알고리즘으로 작성해야 풀 수 있을 것인지 예측할 수 있어야 함.
구현 문제에 접근하는 방법
- Pypy3 이용! -> 1초에 1억 번 정도의 연산 처리
This post is licensed under CC BY 4.0 by the author.