def solution(s):
stack = []
for i in s:
if i == '(':
stack.append(i)
else:
if stack == []:
return False
else:
stack.pop()
return stack==[]
def is_pair(s):
pair = 0
for x in s:
if pair < 0: break
pair = pair + 1 if x == "(" else pair - 1 if x == ")" else pair
return pair == 0
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( is_pair("(hello)()"))
print( is_pair(")("))
![]
스택
- ()짝 맞으면 pop
- 계산이론 수업에서 비슷한 문제를 풀이했던 기억이 있어 금방 해결
- 다른 사람 풀이는 삼항 연산자를 이용했다.
def solution(prices):
answer = [0] * len(prices)
for i in range(len(prices)):
for j in range(i, len(prices)-1):
if prices[i] <= prices[j]:
answer[i] += 1
else:
break
return answer
from collections import deque
def solution(prices):
answer = []
prices = deque(prices)
while prices:
c = prices.popleft()
count = 0
for i in prices:
if c > i:
count += 1
break
count += 1
answer.append(count)
return answer
![]
큐
- 각 인덱스는 초와 같고 각 인덱스 값은 이후 인덱스 값보다 크면 가격이 내려간 것.
- 이후 인덱스 값이 작으면(배열 전체 값과 비교) 현 인덱스 크기 차만큼 초(출력값)가 추가된다.
- 다른 사람 풀이는 큐를 이용한 풀이..(근데 나는 스택이 제일 좋다!!!!)