더북(TheBook)

11.10 연습문제

연습문제 11-1

words.txt에서 단어들을 읽어서 사전에 키로 저장하는 함수를 작성하라. 값은 무엇을 사용해도 된다. 이어서 어떤 문자열이 사전에 있는지 확인하는 빠른 방법으로 in 연산자를 사용해도 된다.

연습문제 10-10을 풀었다면 리스트에서 in 연산자를 사용한 구현과 이분 검색의 속도를 비교할 수 있을 것이다.

 

연습문제 11-2

공식 문서에서 사전(dictionary) 항목에 있는 setdefault 메서드를 읽고 invert_dict 함수를 더 간결한 버전으로 바꿔보라.

해법: http://thinkpython2.com/code/invert_dict.py

 

연습문제 11-3

연습문제 6-2의 아커만(Ackermann) 함수를 메모화 버전으로 바꾸고 함수가 더 큰 인수도 사용할 수 있는지 확인해보라. 힌트: 아니다.

해법: http://thinkpython2.com/code/ackermann_memo.py

 

연습문제 11-4

연습문제 10-7을 풀었다면 리스트를 인자로 받아서 리스트에 어떤 객체가 중복이면 True를 반환하는 has_duplicates 함수가 있을 것이다.

사전을 사용해서 has_duplicates를 더 빠르고 간단한 버전으로 바꿔보라.

해법: http://thinkpython2.com/code/has_duplicates.py

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