TIL 220516

tk_jang·2022년 5월 16일
0

TIL

목록 보기
5/11

스택이란?!

한마디로 탑쌓기 형식이다~ 라는 뜻이다.
우리가 탑을 쌓을때 아래서 위로 쌓고 중간 것을 빼려면
위에 것을 하나씩 제거후에 중간 것을 제거 해줘야한다. 스택도 마찬가지다

스택의 사용 사례

  • 웹 브라우저 방문기록(뒤로가기)
  • 실행 취소 (undo)
  • 역순 문자열 만들기
  • 후위 표기법 계산

해당사례에 사용이 된다는건 알겠다. 하지만 문제를 풀면 스택을 사용하긴 하지만 응용이 안되서 어려운것 같다.

아래의 풀이는 일일 온도의 풀이이다

def dailyTemperatures(T):
    ans = [0] * len(T)
    stack = []
    for i, t in enumerate(T):
        while stack and T[stack[-1]] < t:
            cur = stack.pop()
            ans[cur] = i - cur
        stack.append(i)

    return ans

이 문제에서 stack 을 뽑아 현재 인덱스에서 빼준다
저 풀이법을 보고 진짜 와... 했다 저런 생각을 어떻게 했지 저렇게 말고는 풀지 못하나?...
근데 나는 아직 풀지못한다 ..ㅎㅎ
여러방법으로 시도를 해봤지만 이미 나의 뇌는 풀이법으로 가득 차 버려서 더이상 다른것을 생각하지 못하는 것 같다 나중에 나의 알고리즘 실력이 늘고 자주적인 풀이법을 생각할 날이 온다면 언젠가 다시 한번 풀어보고싶다.

0개의 댓글