사용 언어 - Python3
문제 - 한 줄로 서기
정답
이중반복문 구현 (정답 맞춘 여부 X)
각 자리마다 왼쪽에 있는 키 큰 사람수(cnt)는 총 4자리일때 0 1 2 3 이다.
왼쪽에 있는 키 큰 사람수 arr[i]가 cnt와 동일하고, 해당 자리가 비어있다면,
answer[j] 그 자리에 i+1(자릿수가 1부터 시작하므로, 인덱스+1)을 앉힌다.
왼쪽에 있는 키 큰 사람수 arr[i]와 cnt가 동일하지 않고, 해당 자리가 비어있다면,
cnt += 1 한 자리 오른쪽으로 간다.
j 값을 한개씩 증가하면서 자리를 찾아준다.
n = int(input()) #사람수
arr = list(map(int,input().split())) #왼쪽에 있는 자기보다 큰 사람수
answer = [0]*n #모두 비어있는 자리
for i in range(n):
cnt = 0 #왼쪽에 있는 키 큰 사람 수
for j in range(n):
# 왼쪽에 있는 키 큰 사람수가 arr[i]와 같고, 현재 자리에 아무도 없다면
if cnt == arr[i] and answer[j] == 0:
answer[j] = i+1
break
elif answer[j] == 0:
cnt += 1
print(" ".join(map(str,answer)))
레퍼런스
- 정답 참고
- 정답 깃허브
'Algorithm > 구현' 카테고리의 다른 글
[Python3] 백준 1283번 단축키 지정 (0) | 2023.04.09 |
---|---|
[Python3] 1235번 학생 번호 (0) | 2023.04.09 |
[Python3] 백준 1347번 미로 만들기 (0) | 2023.04.09 |
[Python3] 백준 1002번 터렛 (0) | 2023.04.07 |
[Python3] 백준 1449번 수리공 항승 (0) | 2023.04.05 |
댓글