코딩 테스트/백준(50)
-
백준 알고리즘 1927. 최소 힙
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 전체 코드 import heapq import sys heap = [] n = int(input()) datas = [] for _ in range(n): # x = int(input()) x = int(sys.stdin.readline()) datas.append(x) for x in datas: if x == 0: # 출력 및 제거 - extract if len(heap) ..
2024.03.12 -
백준 알고리즘 1966. 프린터 큐
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 전체 코드 import collections def solutions(nums, m): prioritys = sorted(nums) print_queue = collections.deque() for i, n in enumerate(nums): # (우선순위, 인덱스) print_queue.append((n, i)) pop_count = 0 while print_queue: d = print_queu..
2024.03.12 -
백준 알고리즘 2164. 카드2
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 전체 코드 import collections def solution(n): q = collections.deque(range(1, n + 1)) while len(q) > 1: q.popleft() q.append(q.popleft()) return q[0] n = int(input()) print(solution(n))
2024.03.12 -
백준 알고리즘 1303. 전쟁 - 전투
https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 전체 코드 class Solution: def __init__(self): self.white_power = 0 self.blue_power = 0 self.people_count = 0 def do(self, mat): visited_ch = '#' def dfs(mat, x, y, width, height, ch): if x = width or y <..
2024.03.12 -
백준 알고리즘 2606. 바이러스
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 전체 코드 from collections import defaultdict def solution(inputs): graph = defaultdict(list) for f, t in inputs: graph[f].append(t) graph[t].append(f) visited = set() def dfs(v): visited.add(v) for w in graph[v]: if w not in visi..
2024.03.12 -
백준 알고리즘 2178. 미로 탐색
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 전체 코드 import sys import collections def solution(mat): def is_promising(mat, x, y, width, height): return 0
2024.03.12