본문 바로가기

C언어

2025년 1학기 2주차 C언어

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