코딩하는 해맑은 거북이
[Python] 한 줄로 서기 - 백준 본문
해당 글은 백준 1138번 문제 '한 줄로 서기'를 다룬다.
문제
https://www.acmicpc.net/problem/1138
설명
처음에 어렵게 생각했는데, 키가 1인 사람부터 차례대로 줄 서 있고, 자신보다 왼쪽에 키가 큰 사람의 수가 표시되어 있으므로 순서대로 자신보다 큰 키를 가진 사람이 왼쪽에 위치할 수 있도록 공간을 두고 하나씩 줄을 스면 된다.
예를 들어, 키가 1인 사람이 왼쪽에 키가 큰 사람이 6명이라고 했을 때, 0으로 초기화된 result 배열을 두고 0의 갯수를 세어 총 6개가 되는 위치에 1을 두면 된다. 이를 n까지 반복한다.
코드
n = int(input())
arr = list(map(int, input().split()))
result = [0]*n
for i in range(n):
count = 0
for j in range(n):
if result[j] == 0 and count == arr[i]:
result[j] = i+1
break
elif result[j] == 0:
count += 1
result = list(map(str, result))
print(' '.join(result))
'코딩테스트' 카테고리의 다른 글
[Python] 동물원 - 백준 (DP) (0) | 2023.06.05 |
---|---|
[Python] Z - 백준 (분할정복) (0) | 2023.05.10 |
[Python] 로또 - 백준 (0) | 2023.05.08 |
[Python] 파도반 수열 - 백준 (DP) (0) | 2023.05.04 |
[Python] 다리 놓기 - 백준 (0) | 2023.05.03 |
Comments