반응형
https://www.acmicpc.net/problem/1138
내 답안
N = int(input())
x = list(map(int, input().split()))
d = [0] * N
for i in range(N):
for j in range(N):
if x[i] == 0 and d[j] == 0:
d[j] = i + 1 # i 가 0 부터 시작하니 + 1을 해줌
break
elif d[j] == 0:
x[i] -= 1
print(' '.join(map(str, d)))
x = 자기보다 큰 사람이 왼쪽에 몇명있는지 알고 있는 리스트
d = N 만큼 배열을 초기화 해준다. (원래의 수열을 알기위한 리스트)
예제 1로 설명을 하겠다.
N = 4
x = 2 1 1 0
코드를 스텝화 해서 보여주면
step1 ) i = 0, j = 0
step2 ) i = 0, j = 2
step3 ) i = 1, j = 0
step4 ) i = 1, j = 1
.
.
.
.
final step ) i = 3, j = 1
핵심은 for문의 i 가 0부터 오름차순으로 증가하고 있다는 것이다.
즉 다음에 나오는 수가 무조건 전에 것 보다 크다는 말이다.
반응형
'BOJ > Python' 카테고리의 다른 글
백준 9461번 파도반 수열 파이썬 (0) | 2022.09.19 |
---|---|
백준 1932번 정수 삼각형 파이썬 (0) | 2022.09.18 |
백준 9095번 1, 2, 3 더하기 파이썬 (0) | 2022.06.27 |
백준 1065번 한수 파이썬 (0) | 2022.06.26 |
백준 7785번 회사에 있는 사람 파이썬 (0) | 2022.06.06 |