알고리즘/백준(BaekJoon)
-
알고리즘: 백준 3190번 뱀 (feat. python)알고리즘/백준(BaekJoon) 2021. 1. 20. 11:06
3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net import sys from collections import deque read = sys.stdin.readline N = int(read()) K = int(read()) snake = [[0 for _ in range(N)] for _ in range(N)] snake[0][0] = -1 apple = [[0 for _ in range(N)] for _ in range(N)] for i in range(K): ay, ax = list(map(int, read()..
-
알고리즘: 백준 15686번 치킨 배달 (feat. python)알고리즘/백준(BaekJoon) 2021. 1. 17. 01:23
15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net import sys from collections import deque from itertools import combinations import copy read = sys.stdin.readline N, M = map(int, read().split()) country = [] chick = [] for i in range(N): country.append(list(map(int, read().split()))) for j in rang..
-
알고리즘: 백준 2211번 네트워크 복구 (feat.python)알고리즘/백준(BaekJoon) 2021. 1. 15. 15:29
2211번: 네트워크 복구 첫째 줄에 두 정수 N, M이 주어진다. 다음 M개의 줄에는 회선의 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 컴퓨터와 B번 컴퓨터가 통신 시간이 C (1 ≤ C ≤ 10)인 회선으로 연결되어 있다 www.acmicpc.net import sys import heapq read = sys.stdin.readline INF = sys.maxsize N, M = map(int, read().split()) net = {i: [] for i in range(1, N+1)} for _ in range(M): A, B, C = map(int, read().split()) net[A].append([C, B]) net[B].append([C, A]) times =[[0..
-
알고리즘: 백준 10282번 해킹 (feat. python)알고리즘/백준(BaekJoon) 2021. 1. 15. 14:18
10282번: 해킹 최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 www.acmicpc.net import sys import heapq INF = sys.maxsize read = sys.stdin.readline case = int(read()) def sol(): n, d, c = map(int, read().split()) depen = {i:[] for i in range(1, n+1)} for _ in range(d): a, b, s = map(int, read().split()) depen[b].append([s, a]) visit = [] hq ..
-
알고리즘: 백준 11779번 최소비용 구하기2 (feat.python)알고리즘/백준(BaekJoon) 2021. 1. 15. 13:29
11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net import sys import heapq read = sys.stdin.readline n = int(read()) m = int(read()) graph = {i:[] for i in range(1, n+1)} for _ in range(m): s, e, w = map(int, read().split()) graph[s].append([w, e]) start, end = map(int, read().split()) INF = s..
-
알고리즘: 백준 2665번 미로만들기 (feat.python)알고리즘/백준(BaekJoon) 2021. 1. 13. 13:13
2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1≤n≤50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net import sys import copy import heapq read = sys.stdin.readline n = int(read()) maze = [] for i in range(n): maze.append(list(map(int, read().strip()))) visit = copy.deepcopy(maze) def bfs(): hq = [] heapq.heappush(hq, [0,0,0]) dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] ..
-
알고리즘: 백준 4485번 녹색 옷 입은 애가 젤다지? (feat. python)알고리즘/백준(BaekJoon) 2021. 1. 12. 20:02
4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net import sys import heapq read = sys.stdin.readline def problem(): N = int(read()) if N == 0: return -1 cave = [list(map(int, read().split()))for _ in range(N)] dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] visit = [[False for _ in range(N)] for _ in range(N)]..
-
알고리즘: 백준 13549번 숨바꼭질 (feat. python)알고리즘/백준(BaekJoon) 2021. 1. 12. 18:45
13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import sys from collections import deque read = sys.stdin.readline N, K = map(int, read().split()) MAX = 100000 visit = [False for _ in range(MAX + 1)] def bfs(): queue = deque() queue.append(N) count = deque() count.append(0) min = MAX while..