728x90
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWYygN36Qn8DFAVm
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
< 📝 문제 >
현주는 1번부터 N번까지 N개의 상자를 가지고 있다. 각 상자에는 숫자를 새길 수 있는데 처음에는 모두 0으로 적혀있다.
숫자가 너무 단조로웠던 현주는 다음 Q회 동안 일정 범위의 연속한 상자를 동일한 숫자로 변경하려고 한다. 변경하는 방
법은 다음과 같다.
· i (1 ≤ i ≤ Q)번째 작업에 대해 L번 상자부터 R번 상자까지의 값을 i로 변경
현주가 Q회 동안 위의 작업을 순서대로 한 다음 N개의 상자에 적혀있는 값들을 순서대로 출력하는 프로그램을 작성하
라.
< ❓ 생각 >
이전 삼성시의 버스 노선 문제처럼 0만 적힌 리스트를 만든 후 index가 L~R번의 해당하는 값에 i 값으로 바꾸기
< 💻 코드 >
# 테스트 케이스 개수
T = int(input())
for tc in range(1,T+1):
# N : 상자의 개수, Q : 상자 변경을 반복할 횟수
N,Q = map(int,input().split())
# index 수 일치를 위해 리스트 길이 N+1
result = [0]*(N+1)
# L~R번의 상자의 해당 값을 i로 변경
for i in range(1,Q+1):
L,R = map(int,input().split())
for j in range(L,R+1):
result[j] = i
print(f'#{tc}',*result[1:])
print(f'#{tc}',' '.join(list(map(str,result[1:]))))
< ❗ >
리스트의 각 요소를 일렬로 나열할 때 언팩(*)연산자 말고 join을 통해서도 가능하다
' '.join(list(map(str,result[1:])))) : 리스트 result의 1번 요소 부터 각각 str로 변경한 것을 리스트로 바꾸고 그걸을 띄어쓰기 한 칸으로 구분하여 나열
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[SWEA] 1208. Flatten - Python (0) | 2022.02.19 |
---|---|
[SWEA] 1945. 간단한 소인수분해 - Python (0) | 2022.02.18 |
[SWEA] 6485. 삼성시의 버스 노선 - Python (0) | 2022.02.18 |
[SWEA] 4835. 구간합 - Python (1) | 2022.02.17 |
[SWEA] 4834. 숫자 카드 - Python (0) | 2022.02.17 |
댓글