본문 바로가기

Python/백준

♟️ 백준 3003 - '킹, 퀸, 룩, 비숍, 나이트, 폰' 문제 풀이 가이드#Python

반응형
SMALL

🧩 문제 이해하기

상상해봐요! 여러분이 체스 대회 심판이 되어 체스 세트를 점검하는 임무를 받았어요. 우리의 임무는:

  1. 정확한 체스 피스 개수 기억하기
  2. 현재 가지고 있는 피스 개수 확인하기
  3. 부족하거나 초과된 피스 개수 계산하기
  4. 결과 보고하기

체스 세트의 정확한 피스 개수는 다음과 같아요:

  • 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개

🔧 필요한 파이썬 도구들

1. 📋 리스트 (List)

체스 피스들을 정리하는 상자 역할을 해요.

chess_pieces = [1, 1, 2, 2, 2, 8]

2. 🤐 zip() 함수

두 개의 리스트를 짝짓는 마법사 역할을 해요.

for correct, current in zip([1, 2, 3], [1, 1, 1]):
    print(f"차이: {correct - current}")

3. ✨ 리스트 내포 (List Comprehension)

간단하게 새로운 리스트를 만드는 마법 주문이에요.

squares = [x**2 for x in range(5)]  # [0, 1, 4, 9, 16]

🚀 문제 해결 단계

  1. 정확한 체스 피스 개수 리스트 만들기
  2. 현재 가지고 있는 피스 개수 입력받기
  3. 부족하거나 초과된 피스 개수 계산하기
  4. 결과 보고하기

💻 파이썬 코드로 구현하기

# 1. 정확한 체스 피스 개수 리스트 만들기
correct_pieces = [1, 1, 2, 2, 2, 8]

# 2. 현재 가지고 있는 피스 개수 입력받기
current_pieces = list(map(int, input().split()))

# 3. 부족하거나 초과된 피스 개수 계산하기
difference = [correct - current for correct, current in zip(correct_pieces, current_pieces)]

# 4. 결과 보고하기
print(' '.join(map(str, difference)))

🧠 코드 설명

  1. correct_pieces = [1, 1, 2, 2, 2, 8]: 정확한 체스 피스 개수를 리스트로 만들어요.
  2. current_pieces = list(map(int, input().split())): 현재 피스 개수를 입력받아 리스트로 만들어요.
  3. difference = [correct - current for correct, current in zip(correct_pieces, current_pieces)]:
    • zip()으로 두 리스트를 짝지어요.
    • 리스트 내포로 각 피스의 차이를 계산해요.
  4. print(' '.join(map(str, difference))): 계산된 차이를 공백으로 구분해 출력해요.

🌟 예제로 이해하기

입력 예시:

0 1 2 2 2 7

과정 설명:

  1. 정확한 개수: [1, 1, 2, 2, 2, 8]
  2. 현재 개수: [0, 1, 2, 2, 2, 7]
  3. 차이 계산:
    • 킹: 1 - 0 = 1 (1개 부족)
    • 퀸: 1 - 1 = 0 (정확함)
    • 룩: 2 - 2 = 0 (정확함)
    • 비숍: 2 - 2 = 0 (정확함)
    • 나이트: 2 - 2 = 0 (정확함)
    • 폰: 8 - 7 = 1 (1개 부족)

출력 예시:

1 0 0 0 0 1

💡 팁

  • map(int, input().split())는 입력받은 문자열을 정수 리스트로 변환해요.
  • 리스트 내포는 간결하고 읽기 쉬운 코드를 만들어줘요.
  • join()을 사용하면 리스트의 요소들을 원하는 구분자로 연결할 수 있어요.

🎉 마무리

이렇게 하면 체스 세트를 완벽하게 점검할 수 있어요!
이 문제를 통해 리스트 다루기, zip() 함수 사용, 그리고 리스트 내포를 배웠네요.
이제 여러분은 파이썬으로 체스 세트를 관리하는 전문가가 되었어요! 다음엔 어떤 게임의 도구를 점검해볼까요? 🎲🃏

반응형
LIST