백준 1138번: 한 줄로 서기 (https://www.acmicpc.net/problem/1138)

풀이

키 순서대로 세우고 모든 사람에 대해 왼쪽부터 하나씩 살펴보며 자신의 자리를 찾아가면 되는 문제 입니다.

1. 배열을 한개 더 만든다.

2. 입력받은 값(L1)을 이용해 새로운 배열(L2)의 요소들에 순서대로 접근해서 위치를 찾아간다.

      -1) L2의 요소가 0인 경우와 아닌 경우

      -2) L1의 값이 0인 경우와 아닌 경우     의 조건을 사용해 위치를 찾을 수 있다.

 

n = int(input())
L1 = list(map(int, input().split()))
L2 = [0 for i in range(n)]

for i in range(n):
    count = 0
    for j in range(n):
        if L1[i] == 0 and L2[j] == 0 :
            L2[count] = i + 1
            break
        elif L2[j] != 0:
            count += 1
        elif L2[j] == 0 and  L1[i] >= 0:
            count += 1
            L1[i] -= 1
for i in range(0,n):
    print(L2[i], end=' ')

 

반응형

+ Recent posts