입력값만큼 키가 큰 사람을 앞에 두고 줄을 세우는 문제이다.
왼쪽부터 숫자 0의 개수를 기준으로 위치를 찾아 줄을 세우면 된다.
예를 들어 2,1,1,0 이면
[0,0,1,0] -> 0을 2개 지나친 이후 1 위치
[0,2,1,0] -> 0을 1개 지나친 이후 2 위치
[0,2,1,3] -> 0을 1개 지나친 이후 3 위치
[4,2,1,3] -> 0을 0개 지나친 이후 4 위치
# 1138번 : 한 줄로 서기
n = int(input())
li = list(map(int,input().split()))
ans = [ 0 for i in range(n)]
for i in range(n):
cnt = 0
for j in range(n):
if cnt == li[i] and ans[j] == 0:
ans[j] = i + 1
break
elif ans[j] == 0:
cnt += 1
print(*ans)
728x90
'알고리즘 문제풀이 > Greedy' 카테고리의 다른 글
(파이썬 python) 백준 9237번 : 이장님 초대(greedy) (0) | 2022.05.11 |
---|---|
백준 1343번 : 폴리오미노 (greedy) (0) | 2022.05.10 |
백준 3109번: 빵집 - 파이썬(greedy) (0) | 2022.05.04 |
백준 2847번: 게임을 만든 동준이 - 파이썬(greedy) (0) | 2022.04.19 |
백준 1449번: 수리공 항승 - 파이썬(greedy) (0) | 2022.04.17 |