def solution(s):
stack = [] #스택을 저장할 배열이다
for x in s:#스택이 끝날 때 까지 for문을 돈다
if x == '(': # 여는 괄호는 스택에 추가
stack.append(x)
else: # 닫는 괄호일 경우
if stack: # 스택에 여는 괄호가 있으면 제거
stack.pop()
else: # 스택이 비어 있으면 짝이 맞지 않음
return False
# 스택이 비어 있으면 올바른 괄호 문자열
return len(stack) == 0
def solution(prices):
n = len(prices)
answer = [0] * n # 결과 배열 초기화
stack = [] # (가격이 떨어지지 않은 인덱스 저장)
for i in range(n): # 스택에 있는 가격보다 현재 가격이 낮음: 가격이 떨어짐
while stack and prices[stack[-1]] > prices[i]:
j = stack.pop() # 스택에서 인덱스를 꺼냄
answer[j] = i - j # 지속 시간을 계산한다
stack.append(i)
# 스택에 남아 있는 요소들은 끝까지 가격이 유지된 경우
while stack:
j = stack.pop()
answer[j] = n - 1 - j # 끝까지 유지됐다
return answer
'C언어' 카테고리의 다른 글
2025년 1학기 C언어 4주차 (0) | 2025.04.06 |
---|---|
2025년 1학기 C언어 3주차 (0) | 2025.03.30 |
2025년 1학기 C언어 1주차 (0) | 2025.03.16 |
겨울 C언어 4주차 (0) | 2025.02.01 |
겨울 C언어 2주차 (0) | 2025.01.26 |