Data Structure 🛠️28 [백준 1238번] 파티 https://www.acmicpc.net/problem/1238import sysimport heapqinput = sys.stdin.readline# N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다.# 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비# N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다n, m, x = map(int,input().split())INF = float("inf")graph = [[] for _ in range(n+1)]total_length = [0]*(n+1)for _ in range(m): start, end, t = map(int,input().split.. 2024. 7. 16. [프로그래머스 Lv.2] 더 맵게 import heapqdef solution(scoville, K): answer = 0 # 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다 # 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. # 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) # 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. hq = [] for data in scoville: heapq.heappush(hq,data) while True: if hq and len(hq) ==.. 2024. 7. 15. [백준 1655번] 가운데를 말해요 https://www.acmicpc.net/problem/1655import sys import heapq input = sys.stdin.readline # 정수를 하나씩 외칠때마다 지금까지 말한 수 중에서 중간값을 출력 # 짝수개라면 중간에 있는 두 수 중에서 작은 수 n = int(input()) heap1 = [] # 중간값을 포함한 이전 값 최대힙 heap2 = [] # 중간값 이후의 값 최소힙 for i in range(n): num = int(input()) if len(heap1) == len(heap2): heapq.heappush(heap1,-num) else: heapq.heappush(heap2,num) if heap2 and heap2[0] < -heap1[0]: lvalue = .. 2024. 7. 8. [백준 13335번] 트럭 https://www.acmicpc.net/problem/13335import sysinput = sys.stdin.readlinefrom collections import deque# 강을 가로지르는 하나의 차선으로 된 다리# 이 다리를 n 개의 트럭이 건너가려고 한다# 트럭의 순서는 바꿀 수 없으며, 트럭의 무게는 서로 같지 않을 수 있다.# 다리 위에는 단지 w 대의 트럭만 동시에 올라갈 수 있다. # 각 트럭들은 하나의 단위시간(unit time)에 하나의 단위길이만큼만 이동할 수 있다고 가정# 동시에 다리 위에 올라가 있는 트럭들의 무게의 합은 다리의 최대하중인 L보다 작거나 같아야 한다.# 참고로, 다리 위에 완전히 올라가지 못한 트럭의 무게는 다리 위의 트럭들의 무게의 합을 계산할 때 포함하.. 2024. 7. 3. [소프티어 6289번] 우물 안 개구리 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysinput = sys.stdin.readline# 헬스장에서 N명의 회원이 운동을 하고 있음# 각 회원은 1부터 N사이의 번호가 부여# i번 회원이 들 수 있는 역기의 무게는 Wi# 회원들 사이에는 M개의 친분 관계 (Aj, Bj)가 있음 (Aj와 Bj가 친분관계)# i번 회원은 자신과 친분 관계가 있는 다른 회원들보다 들 수 있는 # 역기의 무게가 무거우면 자신이 최고라고 생각# 단, 누구와도 친분이 없는 멤버는 본인이 최고라고 생각N, M = map(int,input().split())weights = [0] + list(map(int,input().split()))graph = [[] for _ in range(N.. 2024. 6. 19. [소프티어 6270번] GBC Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 이번 문제는 총 100m의 'N개의 구간 및 제한 속도'와 'M개의 테스트 구간 및 속도'가 주어졌을 때 테스트한 구간의 속도를 기준으로 가장 크게 제한 속도를 넘어간 값을 구하는 문제이다. 본 문제를 해결하기 위해서 모든 구간과 속도를 Queue에 담고(시간복잡도를 최소화하기 위해 deque 사용), 구간의 길이에 따라 경우를 나눠서 분기처리 해주었다. 2024. 6. 19. 이전 1 2 3 4 5 다음