풀이
- 해당 알고리즘에 대해 어떻게 접근해야할지에 대한 고민을 오래했지만
- 잘 떠오르지 않아서 다른 분들의 풀이를 확인 후 조금씩 이해할 수 있었다.
- 우선 가장 문제였던 부분이 아래와 같다.
- 나의 키보다 큰 사람이 왼쪽에 입력 받은 수 만큼 있어야 하는 것.
- 입력 받은 수가 같을 경우.
- 그래서 다른 분들의 풀이를 참고하여 이해할 수 있었지만
- 해당 유형과 비슷한 문제들을 좀 더 풀어봐야 확실한 이해를 할 수 있을것 같다.
- 우선 위 문제였던 부분에 대한 해결법으로는
- 조건식을 통해 cnt와 입력 받은 값이 같은지 그리고 result[j]의 값이 아직 채워지지 않았는지 확인.
import sys
input = sys.stdin.readline
n = int(input())
li = list(map(int,input().split()))
result = [0]*n
for i in range(n):
cnt = 0
for j in range(n):
if cnt == li[i] and result[j] == 0:
result[j] = i+1
break
elif not result[j]: cnt += 1
print(*result)
'알고리즘' 카테고리의 다른 글
[백준, 파이썬, 1236번] 성 지키기 (0) | 2023.12.27 |
---|---|
[백준, 자바, 1138번] 한 줄로 서기 (0) | 2023.12.26 |
[백준, 자바, 1063번] 킹 (0) | 2023.12.22 |
[백준, 파이썬, 1063번] 킹 (0) | 2023.12.22 |
[백준, 파이썬, 1059번] 좋은 구간 (0) | 2023.12.21 |