본문 바로가기

Computer Science/알고리즘

[Algorithm] 구현 2. 구현 개념 구현(implementation)이란 ‘머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정’이다. 어떤 문제를 풀든 소스코드를 작성하는 과정은 필수이므로 구현 문제 유형을 모든 범위의 코딩테스트 문제 유형을 포함한다. 우리가 알고리즘 문제를 해결할 때, 문제를 읽고 풀이 방법을 고민한다. 이 생각해낸 문제 풀이 방법을 우리가 원하는 언어로 정확히 구현해냈을 때 정답 처리를 받을 수 있다. 완전 탐색: 모든 경우의 수를 계산하는 해결 방법 시뮬레이션: 문제에서 제시한 알고리즘을 한 단계씩 차례로 직접 수행해야 하는 문제 유형 메모리 제약 사항 대체로 코딩 테스트에서는 128 ~ 512MB로 메모리를 제한한다. 파이썬에서 int 자료형 데이터의 개수에 따른 메모리 사용량은 아래와 같으며, 이를 .. 더보기
[Algorithm] 그리디 개념정리 개념 이 알고리즘은 어떠한 문제가 있을 때 단순하게, greedy하게 문제를 푸는 알고리즘이다. 이는 ‘현재 상황에서 지금 당장 좋은 것만 고르는 방법’을 의미한다. 여타의 알고리즘과 비교할 때, ‘사전에 외우지 않아도 풀 수 있는 가능성이 높은 문제 유형’이라는 특징이 있다. 기준 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 가장 큰 순서대로, 가장 작은 순서대로와 같은 기준을 제시한다. TIP 그리디 알고리즘으로 문제의 해법을 찾았을 때는 그 해법이 정당한지 검토해야 한다. 대부분의 그리디 알고리즘 문제에서는 문제 풀이를 위한 최소한의 아이디어를 떠올리고 이것이 정당한지 검토할 수 있어야 한다. 어떤 문제를 만났을 때, 바로 유형을 파악하기 어렵다면 그리디 알고리즘을 의심.. 더보기