취준 영어성적 때문에 많이 바빠서 너무 오랜만에 테코 공부를 시작해서 그런건지.. 아니면 그냥 내 실력이 이정도인건지ㅠㅜ 너무 못하는데....;;
확실히 HackerRank 가 백준보다 많이 어려운 느낌이다.
심지어 난이도 easy 이다..
1번째 시도
def getMax(operations):
# Write your code here
print_res = []
stack = []
module = 0
for ins in operations:
if ins == '2':
del stack[-1]
elif ins == '3':
print_res.append(m)
else:
q, v = ins.split()
value = int(v)
stack.append(value)
m = value
for i in stack:
if m < i:
m=i
return print_res
이렇게 풀었을 때 시간 복잡도때문에 걸렸다.
2번째 시도
def getMax(operations):
# Write your code here
print_res = []
stack = []
m=0
prev_m = [0]
for ins in operations:
if ins == '2':
stack.pop()
prev_m.pop()
m = prev_m[-1]
elif ins == '3':
print_res.append(m)
else:
q, v = ins.split()
value = int(v)
stack.append(value)
if m < value:
m = value
prev_m.append(m)
return print_res
약간의 JW 도움을 받은 후,,
시간 제한 걸리지 않고 풀었다!!!
cash 를 사용하면 된다.
cash 란 : 필요할 것 같은 정보를 미리 저장해두는 것