[코딩테스트]올바른 괄호 찾기/주식 가격

쟈니·2023년 5월 1일
0

프로그래머스 : 올바른 괄호 찾기

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

접근방식

![]

후기

  • 각 인덱스는 초와 같고 각 인덱스 값은 이후 인덱스 값보다 크면 가격이 내려간 것.
  • 이후 인덱스 값이 작으면(배열 전체 값과 비교) 현 인덱스 크기 차만큼 초(출력값)가 추가된다.
  • 다른 사람 풀이는 큐를 이용한 풀이..(근데 나는 스택이 제일 좋다!!!!)
profile
시작은 미미하나 끝은 쥬쥬하다.

0개의 댓글