파이썬 2

[이코테]구현

구현이란? 코딩 테스트에서 구현이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정'이다. 모든 문제에서 이 과정은 필수적이지만, 현재 설명하고자 하는 문제 유형은 특히 위의 명제부분이 까다로운 문제, 즉 '풀이를 떠올리는 것은 쉬우나 소스코드로 옮기기 어려운 문제'를 뜻한다. 현재 가장 취약한 부분이기도 하다. 위에 해당되는 문제는 크게 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제이거나 특정 소수점 자리까지 출력해야하는 문제, 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어서 리스트에 넣어야 하는(파싱을 해야하는) 문제 등이 있다. 구현 시 고려해야 할 메모리 제약 사항 변수의 표현 범위 전통적인 프로그래밍 언어에서 정수형을 표현할 때 int형의 4바이트 자료형을 사용한다. 이의 표현 범..

[이코테]그리디 알고리즘

어느날 solved.ac를 확인하다가 안 사실, 문제의 분류가 있었다는 것! 당시 낮은 티어 별로 문제를 풀었기에 문제의 유형을 생각해 볼 겨를이 없었다. 되짚어보면 브론즈 그리드 알고리즘은 문제를 한 번에 파악하기 힘들었다는 특징이 있었다는 것이 기억난다. 확률처럼, 문제를 푸는 방법이 여러가지지만 그 중에서 가장 최적의 방식을 골라야 시간을 단축할 수 있었기 때문이다. 방금 '알고리즘의 기본 아니냐'는 생각이 들었다면, 지금부터 이 알고리즘이 어떤 것인지 알아가보자. 그리디 알고리즘이란? 탐욕법이라고도 소개되는 이것은 '현재 상황에서 지금 당장 좋은 것만 고르는 방법'으로, 각 단계에서 가장 최선의 선택을 하는 기법이다. 사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은, 즉 문제 출제의 폭이 넓..