본문 바로가기

Baekjoon175

[백준 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.
[백준 24444번] 알고리즘 수업 - 너비 우선 탐색 1 https://www.acmicpc.net/problem/24444import sysinput = sys.stdin.readlinefrom collections import deque# N개의 정점과 M개의 간선으로 구성된 무방향 그래프(undirected graph)가 주어진다# 정점 번호는 1번부터 N번, 모든 간선의 가중치는 1# 정점 R에서 시작하여 너비 우선 탐색으로 노드를 방문할 경우 노드의 방문 순서를 출력n, m, r = map(int,input().split())graph = [[] for _ in range(n+1)]visited = [0]*(n+1)for _ in range(m): u, v = map(int,input().split()) graph[u].append(v) .. 2024. 7. 2.
[백준 11559번] Puyo Puyo https://www.acmicpc.net/problem/11559import sysfrom collections import dequeinput = sys.stdin.readline# 필드에 여러 가지 색깔의 뿌요를 놓는다# 뿌요는 중력의 영향을 받아 아래에 바닥이나 다른 뿌요가 나올 때까지 아래로 떨어진다.# 뿌요를 놓고 난 후, 같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있으면 연결된 같은 색 뿌요들이 한꺼번에 없어진다# 이때 1연쇄가 시작된다.# 뿌요들이 없어지고 나서 위에 다른 뿌요들이 있다면, 역시 중력의 영향을 받아 차례대로 아래로 떨어지게 된다.# 아래로 떨어지고 나서 다시 같은 색의 뿌요들이 4개 이상 모이게 되면 또 터지게 되는데, 터진 후 뿌요들이 내려오고 다시 터짐을 반복할 때마.. 2024. 7. 1.
[백준 1978번] 소수 찾기 https://www.acmicpc.net/problem/1978import sysinput = sys.stdin.readlinen = int(input())numbers = list(map(int,input().split()))# '1과 자기 자신 외의 약수를 가지지 않는 1보다 큰 자연수count = 0def checkPrime(N): prime_set = set(range(2,N+1)) for i in range(2,N+1): if i in prime_set: prime_set -= set(range(2*i,N+1,i)) if N in prime_set: return True else: return Falsefor num.. 2024. 7. 1.
[백준 12891번] DNA 비밀번호 https://www.acmicpc.net/problem/12891import sysinput = sys.stdin.readline# DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열# 임의의 DNA 문자열을 만들고 만들어진 DNA 문자열의 부분문자열을 비밀번호로 사용# 부분문자열에서 등장하는 문자의 개수가 특정 개수 이상이여야 비밀번호로 사용할 수 있다# 단, 부분문자열이 등장하는 위치가 다르다면 부분문자열이 같다고 하더라도 다른 문자열로 취급한다.s_length, p_length = map(int,input().split())string = input().rstrip()a, c, g, t = map(int,input().split())dictionary =.. 2024. 6. 28.