본문 바로가기
반응형

스택4

[프로그래머스] 주식가격 [JAVA(자바)] ‘프로그래머스 코딩테스트 고득점 Kit’ 문제 입니다. 😀 문제 👉 1. 문제 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지 구한다. 2. 풀이 스택 를 이용한 문제 풀이 주식이 떨어지지 않은 기간은 ans배열로, 주식이 떨어지지 않은 기간을 구하기 위해 stack을 사용한다. 반복문을 돌면서 현재 주식 가격을 stack에 push한다. push 전에 현재 주식가격이 스택의 맨 위에 있는 주식보다 작으면 현재 주식과 스택의 맨 위 주식의 시간을 구한다. 스택의 맨위 주식을 pop한다. 반복문이 끝나고 남아있는 주식은 끝까지 가격이 떨어지지 않은 주식이므로 prices배열의 길이에서 해당 주식의 위치를 뺀 값이다. 3. 코드 import.. 2021. 11. 25.
[LeetCode] 739 Daily Temperatures [Python(파이썬)] &#39;파이썬 알고리즘 인터뷰&#39;를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (일일 온도) 매일의 화씨 온도 리스트 T를 입력받아, 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야하는지를 출력하라. 2. 풀이 스택을 이용한 풀이 스택에 인덱스를 넣기 전에 해당 인덱스의 온도 값이 추가되는 온도와 비교한다 3. 코드 스택을 이용한 풀이 class Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: st, ret = [], [0] * len(T) for idx, val in enumerate(T): while st and T[st[-1]] < val: last = st.pop() ret[last] = idx - last st.app.. 2021. 11. 23.
[LeetCode] 316. Remove Duplicate Letters [Python(파이썬)] &#39;파이썬 알고리즘 인터뷰&#39;를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (중복 문자 제거) 중복된 문자를 제외하고 사전식 순서 중 가장 작게 만들어라. Example 1: Input: s = "bcabc" Output: "abc" Example 2: Input: s = "cbacdcbc" Output: "acdb" 2. 풀이 스택의 개념을 이용한 풀이 (list를 stack처럼 활용하는 문제) 사전에서 가장 앞에 나오게 중복된 문자를 제거하는 문제이다. 문자열의 문자를 미리 카운팅한 후 스택에 다음과 같은 조건에 맞춰 문자를 추가한다. 추가하는 문자가 스택에 존재하지 않을 경우 스택의 마지막 문자가 추가하는 문자 보다 사전 순위가 크고 카운팅 수가 0 보다 클 때 스택의 문자를 계속해서.. 2021. 11. 23.
[LeetCode] 20. Valid Parentheses [Python(파이썬)] &#39;파이썬 알고리즘 인터뷰&#39;를 보고 작성한 글입니다. 😀 문제 👉 1. 문제 (유효한 괄호) 괄호로 된 입력값이 올바른지 판별하라. 2. 풀이 스택을 이용한 풀이 3. 코드 (Python) 스택을 이용한 풀이 class Solution: def isValid(self, s: str) -> bool: dic = { &#39;)&#39; : &#39;(&#39;, &#39;}&#39; : &#39;{&#39;, &#39;]&#39; : &#39;[&#39; } stack = [] for c in s: if c not in dic: stack.append(c) elif not stack or stack.pop() != dic[c]: return False return not stack 결과 : 방.. 2021. 11. 23.
반응형