728x90
반응형

programmers.co.kr/learn/courses/30/lessons/12909#

 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은

programmers.co.kr

from collections import deque 

def solution(s):
    
    q = deque()
    q.append(0)
    ans = 1
    
    for i in range(len(s)):
        if s[i] == '(' :
            q.append('(')
        else :
            ans = q.pop()
        
        if ans == 0 : 
            return False 
            
    if len(q) > 1 :
        return False 
    return True

 

만약 '(' 로 시작하지 않거나, '(' 보다 ')' 가 많으면 ans = 0 이 된다 => False 

for 문이 끝난 다음 q에 뭔가 남아 있으면 '(' 가 ')' 보다 많았다는 것이다 => False 

728x90
반응형

'프로그래머스 > Level 2' 카테고리의 다른 글

카펫  (0) 2021.04.10
더 맵게  (0) 2021.04.10
타겟넘버  (0) 2021.04.08
해시 - 전화번호 목록  (0) 2020.10.14
스택/큐 - 프린터  (0) 2020.10.13
728x90
반응형
from collections import deque 


def solution(priorities, location):
    
    queue = deque()
    for i in range( len(priorities) ):
        queue.append( [ priorities[i], i ] )
        
    answer = [] 
        
    while queue: 
        n = queue.popleft() 
        
        for q in queue: 
            if n[0] < q[0] :
                queue.append(n)
                n = []
                break 
        
        if n : 
            answer.append( n[1] )
            
    return answer.index(location) +1 

 

location은 index와 동일하다. 

 

step 1 ) queue 자료 구조를 사용하기 위해서 deque 정의 

step 2 ) 맨 처음 대기목록에서의 순서를 사용해서 return 값에 적용할 것이므로 우선순위와 location 을 리스트로 묶어 deque에 저장

step 3 ) 문제에 주어진 대로 구현, 나보다 우선순위가 높은 값이 뒤에 있으면 빼서 큐 맨 뒤로 보내고

             없으면 answer 배열에 넣음 

step 4 ) 처음에 입력받은 location 이 answer 의 어느 위치에 있는지 출력한다. 단, 출력 순위는 1 부터 시작하므로 +1 해준다. 

728x90
반응형

'프로그래머스 > Level 2' 카테고리의 다른 글

타겟넘버  (0) 2021.04.08
해시 - 전화번호 목록  (0) 2020.10.14
스택/큐 - 주식가격  (0) 2020.10.13
최댓값과 최솟값  (0) 2020.10.13
큰 수 만들기 *  (0) 2020.10.09
728x90
반응형
def solution(prices):
    answer = [0]* len(prices)
    
    for i in range( len(prices)-1 ):
        cnt = 1
        for j in range( i+1, len(prices) ):
            if prices[i] > prices[j] : 
                answer[i] = j -i 
                break 
        
        if answer[i] == 0 : 
            answer[i] = len(prices) - i -1
            
    return answer

 

728x90
반응형

'프로그래머스 > Level 2' 카테고리의 다른 글

해시 - 전화번호 목록  (0) 2020.10.14
스택/큐 - 프린터  (0) 2020.10.13
최댓값과 최솟값  (0) 2020.10.13
큰 수 만들기 *  (0) 2020.10.09
2 x n 타일링  (0) 2020.10.09

+ Recent posts