[소프티어 6270번] GBC Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 이번 문제는 총 100m의 'N개의 구간 및 제한 속도'와 'M개의 테스트 구간 및 속도'가 주어졌을 때 테스트한 구간의 속도를 기준으로 가장 크게 제한 속도를 넘어간 값을 구하는 문제이다. 본 문제를 해결하기 위해서 모든 구간과 속도를 Queue에 담고(시간복잡도를 최소화하기 위해 deque 사용), 구간의 길이에 따라 경우를 나눠서 분기처리 해주었다. Data Structure/Queue 2024.06.19
[프로그래머스 PCCP 모의고사 3번] 카페 확장 from collections import deque def solution(menu, order, k): answer = 0 queue = deque() for i in order: queue.append(menu[i]) answer = max(answer,len(queue)) time = k while queue: # queue[0]과 time을 비교(걸리는 시간과 남은 시간) if queue[0] time: queue[0] -= time break else: queue.popleft() break return answer 이번 문제는 Queue 자료구조를 사용하여 푸는 문제인데 문제의 조건이 조금 .. Data Structure/Queue 2023.11.11
[프로그래머스 Lv.2] 다리를 지나는 트럭 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(bridge_length, weight, truck_weights): time = 0 queue = [] while truck_weights or queue: time += 1 if queue: queue = [(x[0],x[1]-1) for x in queue if x[1]-1 != 0] if truck_weights and sum([x[0] for x in queue]) + truck_weights[0] Data Structure/Queue 2023.09.21
[프로그래머스 Lv.2] 프로세스 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(priorities, location): answer = 0 queue = [(i,value) for i,value in enumerate(priorities)] while queue: index, priority = queue.pop(0) if queue and max([x[1] for x in queue]) > priority: queue.append((index,priority)) continue answer += 1 if index == location: return answer.. Data Structure/Queue 2023.09.21
[프로그래머스 Lv.2] 기능개발 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(progresses, speeds): answer = [] length = len(progresses) while len(progresses) > 0: count = 0 remain = 100-progresses[0] if remain%speeds[0] != 0: remain = remain // speeds[0] + 1 else: remain = remain // speeds[0] progresses = [value+(remain*.. Data Structure/Queue 2023.09.21
[SWEA 5099번] 피자굽기 from collections import deque t = int(input()) answer = [] for _ in range(t): n, m = map(int,input().split()) cheese = list(map(int,input().split())) data = [(i+1,cheese[i]) for i in range(m)] queue = deque([]) for _ in range(n): queue.append(data.pop(0)) while queue: if len(queue) == 1: v = queue.popleft() answer.append(v[0]) break index, remain = queue.popleft() if remain // 2 != 0: queue.appe.. Data Structure/Queue 2023.09.21