👀 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👁 풀이 def solution(prices): answer = [0 for _ in range(len(prices))] stack = [] for idx,price in enumerate(prices): while stack and stack[-1][1] > price: x = stack.pop() answer[x[0]] = idx-x[0] stack.append([idx,price]) for i, s in stack: answer[i] = len(prices) - i - 1 return answer
deque(데크)란? from collections import deque 데크는 스택과 큐를 합친 것과 같은, 양방향에서 데이터를 삽입 및 추출할 수 있는 자료형이다. deque의 메소드 append() deque의 맨 뒤에 새로운 요소를 추가함 appendleft() deque의 맨 앞에 새로운 요소를 추가함 pop() deque의 맨 뒤 요소를 꺼내고 deque에서 삭제 popleft() deque의 맨 앞 요소를 꺼내고 deque에서 삭제 index(ele, start, end) start 인덱스부터 end 인덱스까지의 요소들 중 찾고자 하는 요소의 첫 번째 인덱스를 출력 insert(i, a) deque의 i 위치에 a를 삽입 remove() 원하는 요소 삭제 (첫번째로 등장하는 요소만 삭제된다..
👀 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👁 풀이 deque를 이용하여 다리를 건너는 시뮬레이션을 만들어보자 from collections import deque def solution(bridge_length, weight, truck_weights): answer = 0 bridge = deque([0 for _ in range(bridge_length)]) truck_weights = deque(truck_weights) bridge_weight = 0 while len(bridge): answer += 1 bridge_weight -..
👀 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👁 풀이 def solution(s): stack = [] for i in s: if stack and stack[-1] == '(' and i == ')': stack.pop() else: stack.append(i) return False if stack else True
👀 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👁 풀이 각 작업이 완료되는 데 필요한 일수를 day 리스트 안에 정리해두고 풀이하였다. import math def solution(progresses, speeds): answer = [] day = [] for p, s in zip(progresses, speeds): day.append(math.ceil((100-p)/s)) while day: x = day.pop(0) cnt = 1 while day and x >= day[0]: cnt += 1 day.pop(0) answer.append(..