jyamethyst21 님의 블로그

백준 10810번 - 공 넣기 (PYTHON 풀이) 본문

CODING 💻

백준 10810번 - 공 넣기 (PYTHON 풀이)

jyamethyst21 2025. 3. 3. 00:03

1) 문제

 

2) 풀이

a,b=map(int,input().split())
c=[0]*a
for i in range(b):
    i,j,k=map(int,input().split())
    for p in range(i-1,j):
        c[p]=k
print(" ".join(map(str,c)))

 

조금 생각을 한 뒤 풀어야 했던 문제이다.

우선 처음에는 공이 없기 때문에 바구니 개수만큼 0으로 초기화를 시킨다. 이 코드를 실행하고 나면 c=[0,0,0,0,0]이 될 것이다(a가 5일 시)

그 후 바구니에 공을 넣을 횟수만큼 반복문을 실행한다. 이때 range(i-1,j)에서 인덱스는 0부터 시작하기 때문에 i-1 과정을 거치는 것이며 추가로 혹시 몰라 range에 대해 간단하게 설명하면 range(시작값, 최종값, 증가값)는 시작값부터 최종값-1까지 증가값 수대로 범위를 정한다라고 생각하면 된다. 증가값을 주지 않을 경우 자동으로 1이기 때문에 range(1,3): 이라면 1,2를 반복한다고 생각하면 된다.

말이 딴 곳으로 샜는데 아무튼 이런 과정을 거쳐서 c 리스트에 range에 정한 범위의 값을 하나씩 넣어서 해당하는 인덱스칸에 k번이 적힌 공을 대입한다는 코드이고 이를 출력하면 문제를 풀 수 있다.