https://www.acmicpc.net/problem/10810
안녕하세요, 오늘은 백준 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의 기본 문법과 리스트를 다루는 방법에 대해 더 잘 이해하게 되었습니다.
다음에 또 다른 문제 풀이로 찾아뵙겠습니다. 감사합니다!
'BOJ' 카테고리의 다른 글
백준 1764번 - 듣보잡 [Python] (0) | 2023.07.29 |
---|---|
백준 2798번 - 블랙잭 [Python] (0) | 2023.07.28 |
백준 10989번 - 수 정렬하기 3 [python] (0) | 2023.06.21 |
백준 1475번 - 방 번호 [python] (0) | 2023.06.13 |
백준 1966번 - 프린터 큐 [Python] (0) | 2023.06.07 |