더북(TheBook)

11.2 카운터 컬렉션으로서의 사전

문자열에서 각 문자가 몇 번 등장하는지 세고 싶다고 하자. 문자를 세는 방법은 몇 가지가 있다.

1. 알파벳의 각 문자에 해당하는 변수 16개를 생성한다. 이어서 문자열을 순회하면서 각 문자에 해당하는 카운터를 증가시킨다. 아마도 연쇄 조건을 사용해야 할 것이다.

2. 원소 26개를 갖는 리스트를 생성한다. 이어서 각 문자를 숫자로 변환한다(내장 함수 ord를 사용). 이 숫자를 리스트의 인덱스로 사용하고, 문자에 해당하는 카운터를 증가시킨다.

3. 문자를 키로, 카운터를 해당 값으로 하는 사전을 생성한다. 문자가 처음 등장하면 사전에 항목을 추가한다. 이후에는 기존 항목의 값을 증가시킨다.

이들 각각의 옵션은 같은 계산을 수행하지만, 각각은 다른 방법으로 계산을 구현하고 있다.

구현(implementation)은 계산을 수행하는 방법을 말한다. 어떤 구현은 다른 구현보다 좋기도 하다. 예를 들어 사전 구현의 장점은 문자열에 어떤 문자가 나타날지 미리 알 필요가 없고, 해당 문자가 나타나면 문자를 위한 공간을 만들기만 하면 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.