알고리즘 문제 풀이

[백준 - Python] 28270. Marked-Numbered

김혠 2024. 10. 12. 13:23

문제링크

 

최종코드(코드링크)

C = int(input())
M = list(map(int, input().split()))

if M[0] != 1:
    print(-1)
    exit(0)

visit = [0] * (C + 1)
res = []
benum = 0
for num in M:
    if num > C:
        print(-1)
        exit(0)
        
    if num < benum:
        visit[num] += 1
        res.append(str(visit[num]))
        
    else:
        if num > benum: visit[num] = 0
        visit[num] += 1
        res.append(str(visit[num]))
    benum = num
print(" ".join(res))

이미지만 잘 봐도 문제를 이해하는데 도움이 되는데요,

왼쪽이 기호 형태, 오른쪽이 번호 형태입니다.

즉, 왼쪽의 형태를 오른쪽의 형태로 변형해서 출력해야하는 문제입니다:)