코딩하는 해맑은 거북이

[Python] 한 줄로 서기 - 백준 본문

코딩테스트

[Python] 한 줄로 서기 - 백준

#CJE 2023. 5. 9.
해당 글은 백준 1138번 문제 '한 줄로 서기'를 다룬다.

문제

https://www.acmicpc.net/problem/1138

 

1138번: 한 줄로 서기

첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다

www.acmicpc.net

 

설명

처음에 어렵게 생각했는데, 키가 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