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
   16   17   18   19   20   21   22   23   24   25   26