코딩테스트/python

[백준/Python] 10810번 - 공 넣기

bildad_1 2023. 11. 27. 23:30
728x90

문제 이해하기

조건)

바구니를 총 N개 가지고 있고,앞으로 M번 공을 넣으려고 한다 ( n, m )

한 번 공을 넣을 때, 공을 넣을 바구니 범위를 정하고, ( i, j )

정한 바구니에 모두 같은 번호가 적혀있는 공을 넣는다. ( k )

만약, 바구니에 공이 이미 있는 경우에는 들어있는 공을 빼고, 새로 공을 넣는다.

공을 넣을 바구니는 연속되어 있어야 한다.

< 배열 > <입력> <리스트에 들어있는 공 번호>

[0 0 0 0 0] 5 4

[1 2 3 4 5] --> 바구니 번호

[3 3 0 0 0] 1 2 3 --> 1번부터 2번까지 3번 공을 넣어라 - > [3 3 0 0 0]

[0 0 4 4 0] 3 4 4 --> 3번부터 4번까지 4번 공을 넣어라 - > [3 3 4 4 0]

[1 1 1 1 0] 1 4 1 --> 1번부터 4번까지 1번 공을 넣어라 - > [1 1 1 1 0]

[0 2 0 0 0] 2 2 2 --> 2번부터 2번까지 2번 공을 넣어라 - > [1 2 1 1 0]

--------------------------------------

[1 2 1 1 0] --> 출력

코드 입력 )

 

n,m = map(int, input().split())             # 원하는 바구니 개수(n)와 넣을 수 있는 공의 개수(m)) 구하기
basket = [0 for _ in range(n)]              # 바구니 개수 생성.

for _ in range(m):                          # m개의 줄에 걸쳐서 공을 넣는 방법 돌리기 
    i, j, k = map(int, input().split())     # i번 바구니부터 j번 바구니까지에 k번 번호가 적혀져 있는 공 입력받
    for z in range(i, j+1):                 # 원하는 바구니 위치 
        basket[z-1] = k                     # 리스트는 0번부터 시작하니까 z-1을 해주고, k를 i-j까지 넣어놓기
        
for z in range(n):                          # 바구니 개수만큼 돌리기  
    print(basket[z],end = " ")              # 바구니 사이사이에 공백 넣기

**

파이썬 반복문에서 언더바(_) 사용

basket = [0 for _ in range(n)]              # 바구니 개수 생성.
ex)
** 변수 값이 필요없을 때 언더바 (_)를 사용한다.
그래서 리스트에 사용할 때는 리스트 초기화에도 사용 가능!



array = [0 for _ in range (3)]
print(array)

>>> [0, 0, 0]