Python/백준

🏀 백준 10810 - '공 넣기' 문제 풀이 가이드 #Python

고발초이이 2024. 6. 3. 13:50
반응형
SMALL

🧩 문제 이해하기

상상해봐요! 여러분 앞에 빈 바구니들이 일렬로 놓여있어요. 우리의 임무는 이 바구니들에 공을 넣는 거예요.
어떻게 할까요?

  1. 바구니의 개수(N)와 공을 넣는 횟수(M)를 정해요.
  2. 매번 공을 넣을 때, 어느 범위의 바구니에 어떤 번호의 공을 넣을지 결정해요.
  3. 모든 작업이 끝나면, 각 바구니에 어떤 공이 들어있는지 확인해요.

🔧 필요한 파이썬 도구들

1. 📋 리스트 (List)

여러 개의 바구니를 표현하는데 사용해요.

baskets = [0, 0, 0, 0, 0]  # 5개의 빈 바구니

2. ✂️ 슬라이싱 (Slicing)

바구니의 특정 범위를 선택할 때 사용해요.

baskets[1:3] = [2, 2]  # 2번째와 3번째 바구니에 2번 공을 넣어요

🚀 문제 해결 단계

  1. 빈 바구니 만들기
  2. 공 넣기 작업 수행하기
  3. 결과 확인하기

💻 파이썬 코드로 구현하기

# 1. 빈 바구니 만들기
N, M = map(int, input().split())
baskets = [0] * N

# 2. 공 넣기 작업 수행하기
for _ in range(M):
    i, j, k = map(int, input().split())
    for x in range(i-1, j):
        baskets[x] = k

# 3. 결과 확인하기
print(' '.join(map(str, baskets)))

🧠 코드 설명

  1. N, M = map(int, input().split()): 바구니 개수(N)와 작업 횟수(M)를 입력받아요.
  2. baskets = [0] * N: N개의 빈 바구니를 만들어요.
  3. for _ in range(M):: M번 공을 넣는 작업을 반복해요.
  4. i, j, k = map(int, input().split()): 어느 범위(i부터 j까지)에 어떤 공(k)을 넣을지 입력받아요.
  5. for x in range(i-1, j):: i부터 j까지의 바구니에 k번 공을 넣어요.
  6. print(' '.join(map(str, baskets))): 각 바구니에 어떤 공이 들어있는지 출력해요.

🌟 예제로 이해하기

입력 예시:

5 3
1 2 3
3 4 4
1 5 1

과정 설명:

  1. 5개의 빈 바구니를 만들어요: [0, 0, 0, 0, 0]
  2. 1~2번 바구니에 3번 공을 넣어요: [3, 3, 0, 0, 0]
  3. 3~4번 바구니에 4번 공을 넣어요: [3, 3, 4, 4, 0]
  4. 1~5번 바구니에 1번 공을 넣어요: [1, 1, 1, 1, 1]

출력 예시:

1 1 1 1 1

🎉 마무리

이렇게 하면 공 넣기 게임을 파이썬으로 구현할 수 있어요!
이 문제를 통해 리스트 조작과 반복문 사용을 연습할 수 있답니다.
여러분도 이제 파이썬으로 재미있는 게임을 만들 수 있어요! 🎈🎊

반응형
LIST