Page 21 -
P. 21
19.1.1.3 해법을 의사 코드로 추상화하기
지금까지 입력 문자열을 단어들로 나누는 방법을 생각했다. 이제 그려둔 큰 그림에 맞게 적재적소
에 코드와 우리말 설명을 넣은 의사 코드를 작성하면서 세부 사항을 고민할 차례다.
문자열의 글자를 모두 살펴봐야 하므로 루프를 사용하자. 루프 안에서는 새줄 문자를 찾았는지 판
단해야 한다. 새줄 문자를 찾으면 현재까지 찾아낸 단어를 저장하고, start와 end 인덱스를 새줄
문자 뒤로 재설정해야 한다. 새줄 문자를 찾지 못했다면 end 인덱스만 1씩 증가시키면서 새줄 문
자를 찾는다. 의사 코드는 다음과 같다.
word_string = """art
hue
ink
"""
start와 end를 0으로 설정한다
19
올바른 단어를 담기 위한 빈 튜플을 만든다
for letter in word_string:
if letter가 새줄 문자:
start부터 end까지의 단어를 튜플에 넣는다
start와 end를 새줄 문자 바로 뒤 위치로 다시 설정한다
else: 진급 프로젝트: 스크래블:아트 단어 게임
end를 1 증가시킨다
19.1.2 주어진 타일로 올바른 단어 만들기
이제 올바른 단어들이 들어 있는 목록(튜플)이 있을 때, 주어진 타일로 올바른 단어를 만들 수 있
는지 판단하는 로직을 생각할 차례다.
19.1.2.1 문제를 그림을 표현하기
언제나 그렇듯이 필요한 걸 그림으로 표현하면 도움이 된다. 두 번째 문제를 해결하기 위한 로직
은 두 가지 방식으로 접근할 수 있다.
● 가지고 있는 타일을 살펴보는 것부터 시작한다. 타일의 조합(combination)을 모두 찾은 후,
조합이 올바른 단어 목록에 있는지 검사한다.
● 올바른 단어 목록을 뒤지면서 각 단어가 현재 가지고 있는 타일로 생성할 수 있는 단어인지
검사한다.
233
모던 파이썬 입문(본문)5차_최종.indd 233 2019-09-26 오후 9:33:41