BOJ

백준 10810번 - 공 넣기 [Python]

SS_G 2023. 7. 27. 00:39
반응형

https://www.acmicpc.net/problem/10810

 

10810번: 공 넣기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이

www.acmicpc.net

안녕하세요, 오늘은 백준 10810번 문제에 대한 해결 방법을 공유하려고 합니다. 이 문제는 주어진 규칙에 따라 바구니에 공을 넣는 문제로, 간단한 구현 방법으로 해결할 수 있습니다.

문제 이해

일렬로 나열된 N개의 바구니가 있습니다. 바구니에는 공을 넣을 수 있고, 바구니에 들어있는 공은 바구니에 적혀있는 번호와 같습니다.

현우는 바구니에 공을 M개 넣는데, 이때 바구니에 공을 넣는 방법은 다음과 같습니다:

1. 바구니에 들어있는 공을 전부 비운다.
2. x번 바구니부터 y번 바구니까지 공을 넣는다. 이때 넣는 공의 번호는 i이다.


현우는 이 과정을 M번 반복합니다. 이때, 같은 바구니에 여러 번 공을 넣을 수 있습니다. 가장 처음 바구니에 공이 없는 상태에서 시작할 때, M번 공을 넣은 후 각 바구니에 어떤 공이 들어있는지를 구하는 것이 문제입니다.

 

코드 작성

입력으로 주어진 x부터 y까지의 바구니에 i 번호의 공을 넣는 작업을 M번 반복하면 됩니다.

Python 코드로 구현하면 다음과 같습니다:

N, M = map(int, input().split())
baskets = [0] * (N+1)

for _ in range(M):
    x, y, i = map(int, input().split())
    for j in range(x, y+1):
        baskets[j] = i

for i in range(1, len(baskets)):
    print(baskets[i], end=' ')

위 코드에서는 먼저 바구니의 수 N과 공을 넣는 횟수 M을 입력 받습니다. 그 다음, N개의 바구니를 0으로 초기화한 배열을 만듭니다 (0은 공이 없음을 나타냅니다).

그런 다음에는 M번 동안 x, y, i를 입력 받아 x부터 y까지의 바구니에 i 번호의 공을 넣습니다.

마지막으로, 각 바구니에 어떤 공이 들어 있는지를 출력합니다.

마치며

백준 10810번 문제는 간단한 구현 문제로, Python의 기본적인 기능만을 사용해서도 충분히 해결할 수 있습니다.

문제를 풀면서 Python의 기본 문법과 리스트를 다루는 방법에 대해 더 잘 이해하게 되었습니다.

다음에 또 다른 문제 풀이로 찾아뵙겠습니다. 감사합니다!

반응형