www.acmicpc.net/problem/10773

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net


문제 해결을 위한 과정

이 문제의 경우 구현 파트에 속해있지만 문제가 다루는 내용은 사실상 자료구조 중 스택입니다. 스택의 경우 FILO 혹은 LIFO로 설명할 수 있습니다. 단순하게 숫자들을 입력받는데 만약 입력받은 숫자가 0이라면 뒤에서 pop 해주는 식으로 구현을 하면 쉽게 해결할 수 있습니다.


소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
word = input()
ans = [0* 10
for i in range(len(word)):
    num = int(word[i])
    if num == 6 or num == 9:
        if ans[6<= ans[9]:
            ans[6+= 1
        else:
            ans[9+= 1
    else:
        ans[num] += 1
 
print(max(ans))
cs

+ Recent posts