예은이의 이것저것

구현 (implementation) 본문

나는 컴공이다/개념 정리

구현 (implementation)

김짱짱 2021. 2. 22. 13:37

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

보통 ps에서 구현문제는 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 말한다.

 

유형

 - 완전 탐색: 모든 경우의 수를 다 계산하는 해결방법

 - 시뮬레이션: 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행해야하는 문제 유형

 

✔ 구현 시 고려해야 할 메모리 제약 사항

 - C/C++/JAVA에서 변수의 표현 범위 (파이썬은 제한x)

  int (4byte): -2,147,483,678 ~ 2,147,483,677

  long long (8byte): -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

  BigInteger(가변적): 제한 x (String 형식으로 다루는 클래스)

 

 - 파이썬에서 리스트 크기 (다른 언어도 마찬가지)

 int 자료형 데이터의 개수에 따른 메모리 사용량

데이터의 개수 메모리 사용량
1000 약 4KB
1000000 약 4MB
10000000 약 40MB

✔ 채점 환경

 - 파이썬은 C/C++보다 동작 속도가 느리다 (아마 자바는 더 느릴걸?)

 - (파이썬 기준) 보통 1초에 2000만번의 연산을 수행할 수 있다

 

✔ 구현 문제에 접근하는 방법

 파이썬: 구현은 쉽지만 시간이 더 오래 걸림

 C/C++: 구현은 어렵지만 시간이 빠름

  (자바: 둘 다 아닐걸?)

 

 

출처| 이것이 취업을 위한 코딩테스트다 with 파이썬 (나동빈 저)

'나는 컴공이다 > 개념 정리' 카테고리의 다른 글

최단 경로 알고리즘  (0) 2021.02.15
위상 정렬 (Topology Sort)  (0) 2021.02.08
신장 트리(Spanning Tree)  (0) 2021.02.08
서로소 집합(Disjoint Set)  (0) 2021.02.08
DFS/BFS  (0) 2021.02.01