본문 바로가기
백준

[백준] 10810번 : 공 넣기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 9. 26.
728x90
반응형

 

 

10810번: 공 넣기

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

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

해당 문제는 1차원 배열에 관한 문제이다.

바구니에 공을 넣는데 각 바구니에는 하나의 공만 넣을 수 있기 때문에 공이 있다면 바꿔 넣어야 한다.

하지만 그냥 매 순간 해당 번호의 공을 배열의 값으로 넣어주면 된다.

 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 바구니 개수와 공을 넣을 횟수를 입력받는다. N, M = map(int, sys.stdin.readline().split())
  3. 바구니는 처음에 공이 없으므로 각 바구니를 리스트로 생성한다. basket = list(0 for _ in range(N))
  4. 공을 넣을 횟수만큼 반복하며 for _ in range(M)
  5. 바구니 범위와 넣을 공의 번호를 입력받는다. i, j, k = map(int, sys.stdin.readline().split())
  6. 바구니 번호를 리스트의 인덱스 값으로 설정해 주었으므로 번호에서 1을 뺀 번호가 인덱스 값이다. 하여 공을 넣을 바구니의 범위만큼 반복하며 바구니에 공을 넣는다. for num in range(i - 1, j): basket[num] = k
  7. 공을 모두 넣었다면 바구니를 번호 순서대로 불러와 공을 번호를 출력한다. for i in basket: print(i, end=' ')
반응형

3. 소스코드

import sys

N, M = map(int, sys.stdin.readline().split())

basket = list(0 for _ in range(N))
for _ in range(M):
    i, j, k = map(int, sys.stdin.readline().split())
    for num in range(i - 1, j):
        basket[num] = k
        
for i in basket:
    print(i, end=' ')
728x90
반응형