[백준] 1138 - 한 줄로 서기 (그리디)

김영민·2024년 10월 10일
0

코딩테스트

목록 보기
32/32


코드

n = int(input())

arr = list(map(int, input().split()))
answer = [0]*n

for i in range(n):   
    cnt = 0
    for j in range(n):
        if cnt == arr[i] and answer[j] == 0:
            answer[j] = i + 1
            break
        elif answer[j] == 0:
            cnt += 1
                
print(' '.join(map(str, answer)))

리뷰

  • 0으로 초기화 한 뒤, 특정 번호인 사람(0~N-1)의 앞에 본인보다 큰 사람에게 빈자리를 두고 채워나가면 됨.
  • cnt는 본인보다 큰 사람 명수만큼 비워졌는지 확인, 그 자리가 0이라면 배정해주기.

0개의 댓글