고급 파이썬 개발 과정
챕터
>
레벨
고급 리스트
정렬 집합
목표
Sets를 사용하여 재료를 정리하고 요리하기
음식을 준비하기 시작하는 것이 좋습니다. 냉장고 안에는 여러 재료들이 포장되어 있고, 음식에 풍미를 더할 수 있는 허브들도 있습니다. 모든 재료는 리스트에 저장되어 있으므로 항목들을 통합하고 요리의 효율을 높이기 위해 Sets를 사용하는 것이 좋습니다.
세 개(3)의 리스트 상수가 있습니다. 두 개(2)는 고기이며, 이름은 pack1과 pack2이고, 하나(1)는 요리 재료이며, 이름은 ingredients입니다. 주황색 카펫 위의 어두운 X 표시까지 걸어가서 냉장고를 바라보고, collect() 함수를 사용하여 냉장고에서 pack1과 pack2를 가져오세요. 예시: player.collect(pack1).
고기를 수집한 후, 밝은 X 표시까지 걸어가서 도마를 마주보세요. 여기에서 수집한 두 리스트 상수를 사용하여 speak() 함수를 이용해 팩의 내용을 확인합니다. 여기서 이전 단계와 같이 Sets를 사용하여 항목들을 통합할 것입니다. set1과 set2라는 두 개의 Sets를 만들고, set() 함수를 사용하여 각각 pack1과 pack2를 할당하세요. 예시: set1 = set(pack1).
리스트가 Sets로 통합되었으면, 이제 항목들을 소규모의 Sets로 분류하여 정리할 시간입니다.
이를 달성하는 첫 번째 방법은 systemic_difference로, 이는 각 Set 간에 공유되지 않는 항목들을 분리할 수 있게 해줍니다. unique라는 Set을 생성하고, 두 Sets를 사용하여 systemic_difference를 통해 고유한 항목들을 식별하세요. 예시: unique = set1.symmetric_difference(set2). 생성한 Set의 내용을 확인하기 위해 speak() 메서드를 사용하세요.
다음으로, 두 번째 정리 방법으로 shared라는 Set을 생성하고, 이전 단계에서 학습한 intersection 메서드를 사용하여 두 Sets에서 모두 발견되는 항목들을 식별하세요. 예시: shared = set1.intersection(set2). 생성한 Set의 내용을 확인하기 위해 speak() 메서드를 사용하세요.
마지막으로, difference라는 메서드를 사용하여 한 쪽 Set에만 있는 항목들을 분리합니다. meat1과 meat2라는 두 개(2)의 Sets를 생성하고, difference를 사용하여 두 원본 Sets를 비교하여 항목들을 식별하세요. 예시: meat1 = set1.difference(set2) 및 meat2 = set2.difference(set1). 생성한 고기 Sets 각각의 내용을 확인하기 위해 speak() 메서드를 사용하세요.
이렇게 해서 고기들이 정리되었습니다. 파란 카펫 위의 어두운 X 표시까지 걸어가서 냉장고를 바라보고, place() 함수를 사용하여 생성한 shared Set을 보관하세요. 예시: player.place(shared). 이렇게 하면 요리하지 않을 재료들을 치워둘 수 있습니다.
금색 X 표시까지 걸어가서 캐비닛을 바라보고, collect() 함수를 사용하여 마지막 리스트 상수인 ingredients를 획득한 후, speak() 함수를 사용하여 그 내용을 확인하세요. ingredients의 요소들을 새로운 Set인 set3으로 전달하세요. 이제 모든 재료를 갖추었으므로, 요리에 필요한 모든 요소들을 결합하는 union 메서드를 사용하여 meal1과 meal2라는 두 개의 Sets를 만드세요.
meal1의 경우, set3과 meat1을 결합하세요. 예시: meal1 = set3.union(meat1). 보라색 카펫 위의 어두운 X 표시까지 걸어가서 meal1 Set으로 speak() 함수를 사용하여 내용을 확인하고, place() 함수를 사용하여 냄비에 요리를 완료하세요.
meal2의 경우도 동일하게 하되, 대신 set3과 meat2를 결합하는 union 메서드를 사용하세요. 노란색 카펫 위의 어두운 X 표시까지 걸어가서 냄비를 마주보고, speak() 및 place() 함수를 meal2와 함께 사용하여 단계를 완료하세요.