Python

4.2.1. 연습 문제: 아이돌 팬 (1)

수현조 2024. 11. 29. 10:18

문제

다음과 같은 사람들이 있습니다.

  • 뉴진스를 좋아하는 사람: 철수, 영희, 민수, 지현, 서연
  • 아이브를 좋아하는 사람: 영희, 민수, 지수, 서연, 하나
  • 에스파를 좋아하는 사람: 철수, 지현, 지수, 서연, 나영

이 중에서 뉴진스와 아이브를 모두 좋아하지만 에스파는 좋아하지 않는 사람은 누구일까요?

힌트in 키워드를 사용하여 항목이 목록에 있는지 확인할 수 있습니다.

# 책 목록에 특정 책이 있는지 확인하는 예시
books = ["해리포터", "반지의 제왕", "셜록 홈즈"]
if "해리포터" in books:
    print("해리포터가 목록에 있습니다.")

append 메서드를 사용하여 결과 목록에 새로운 항목을 추가할 수 있습니다.

# 장바구니에 물건을 추가하는 예시
shopping_cart = []
shopping_cart.append("사과")
shopping_cart.append("바나나")
print(shopping_cart)  # 출력: ["사과", "바나나"]

join 메서드를 사용해 목록의 항목을 하나의 문자열로 결합할 수 있습니다.

# 목록의 항목을 문자열로 결합하는 예시
fruits = ["사과", "바나나", "오렌지"]
result = ", ".join(fruits)
print("내가 좋아하는 과일:", result)  # 출력: 내가 좋아하는 과일: 사과, 바나나, 오렌지

풀이

 

문제 상황

목표:

  • new 리스트에서 요소를 하나씩 확인합니다.
  • 해당 요소가:
    1. ive 리스트에도 포함되어 있어야 하고,
    2. aspa 리스트에는 포함되지 않아야 합니다.

코드 설명

코드

new = ["철수", "영희", "민수", "지현", "서현"]
ive = ["영희", "민수", "지수", "서연", "하나"]
aspa = ["철수", "지현", "지수", "서연", "나영"]

for x in new:                       # 'new' 리스트의 각 요소를 순회
    if x in ive:                    # 'ive' 리스트에도 포함되어 있는지 확인
        if x not in aspa:           # 'aspa' 리스트에는 포함되지 않는 경우
            print(x)                # 조건을 만족하면 출력

코드의 실행 과정

  1. for x in new:
    • new 리스트의 요소를 하나씩 꺼내옵니다.
    • 첫 번째 반복에서는 x = "철수", 두 번째 반복에서는 x = "영희"가 됩니다.
  2. if x in ive:
    • x가 ive 리스트에도 포함되어 있는지 확인합니다.
    • 예를 들어, "철수"는 ive에 없지만, "영희"는 ive에 포함되어 있으므로 조건을 만족합니다.
  3. if x not in aspa:
    • x가 aspa 리스트에는 포함되지 않는지 확인합니다.
    • 예를 들어, "영희"는 aspa에 없으므로 조건을 만족합니다.
  4. print(x)
    • 위 조건을 모두 만족하는 경우, 해당 값을 출력합니다.

코드 동작 과정 자세히 보기

1. 첫 번째 요소: "철수"

  • if x in ive: "철수"는 ive 리스트에 없으므로 다음 반복으로 넘어감.

2. 두 번째 요소: "영희"

  • if x in ive: "영희"는 ive 리스트에 있음 → 조건 만족.
  • if x not in aspa: "영희"는 aspa 리스트에 없음 → 조건 만족.
  • 출력: "영희"

3. 세 번째 요소: "민수"

  • if x in ive: "민수"는 ive 리스트에 있음 → 조건 만족.
  • if x not in aspa: "민수"는 aspa 리스트에 없음 → 조건 만족.
  • 출력: "민수"

4. 네 번째 요소: "지현"

  • if x in ive: "지현"은 ive 리스트에 없음 → 조건 불만족.
  • 다음 반복으로 넘어감.

5. 다섯 번째 요소: "서현"

  • if x in ive: "서현"은 ive 리스트에 없음 → 조건 불만족.
  • 다음 반복으로 넘어감.

출력 결과

영희
민수

해결한 방식

  1. 두 조건을 단계별로 확인:
    • x in ive: 먼저 new의 요소가 ive에 있는지 확인.
    • x not in aspa: 이후 aspa에는 없는지 확인.
  2. 조건 만족 시만 출력:
    • 두 조건을 모두 만족하는 요소만 print(x)로 출력.
  3. 결과:
    • "영희"와 "민수"는 ive에는 포함되고, aspa에는 포함되지 않으므로 출력되었습니다.

'Python' 카테고리의 다른 글

4.2.3 연습 문제: 회문 판별 함수 만들기  (2) 2024.11.29
4.2.2 슬라이싱  (0) 2024.11.29
4.2 문자열과 리스트  (1) 2024.11.29
4.1 자료형  (0) 2024.11.29
3.5 람다(lambda)  (0) 2024.11.29