본문 바로가기

Algorithm245

[백준] 17143번 - 낚시왕 (파이썬) # 낚시왕 import copy import sys input = sys.stdin.readline N, M, S = map(int, input().split()) arr = [[0] * (M+1) for _ in range(N+1)] for _ in range(S): n, m, speed, direction, big = map(int, input().split()) arr[n][m] = (speed, direction, big) shark_move = [[], [-1, 0], [1, 0], [0, 1], [0, -1]] def fishing(now): global result for i in range(1, N+1): if arr[i][now] != 0: result += arr[i][now][2] a.. 2022. 2. 11.
[백준] 1043번 - 거짓말 (파이썬) # 거짓말 import sys input = sys.stdin.readline N, M = map(int, input().split()) know = set(map(int, input().split()[1:])) party = [] for _ in range(M): people = set(map(int, input().split()[1:])) party.append(people) can = [True] * M for _ in range(M): for i, people in enumerate(party): if people & know: can[i] = False know = know | people result = 0 for i in range(M): if can[i]: result += 1 print(.. 2022. 2. 9.
[백준] 1865번 - 웜홀 (파이썬) # 웜홀 import sys input = sys.stdin.readline MAX = sys.maxsize def bf(): for k in range(1, N+1): for i in range(1, N+1): for time, city in arr[i]: if times[city] > time + times[i]: times[city] = time + times[i] if k == N: return True return False T = int(input()) for _ in range(T): N, M, W = map(int, input().split()) arr = [[]for _ in range(N+1)] for _ in range(M): a, b, time = map(int, input().sp.. 2022. 2. 9.
[백준] 1525번 - 퍼즐 (파이썬) # 퍼즐 from collections import deque N = 3 arr = [] zero_x = 0 zero_y = 0 for i in range(N): arr.append(list(map(int, input().split()))) for j in range(N): if arr[i][j] == 0: zero_x = i zero_y = j dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] visit = dict() def bfs(a, b): global arr q = deque() string = change(arr) if string == '123456780': return '0' q.append((a, b, 0, string)) visit[string] = True while.. 2022. 2. 9.
[백준] 11779번 - 최소비용 구하기 2 (파이썬) # 최소비용 구하기 2 import sys import heapq input = sys.stdin.readline MAX = sys.maxsize N, M = int(input()), int(input()) arr = [[]for _ in range(N+1)] for _ in range(M): start, end, cost = map(int, input().split()) arr[start].append((cost, end)) def dijkstra(start): q = [] heapq.heappush(q, (0, start)) result[start] = 0 while q: cost, city = heapq.heappop(q) if result[city] < cost: continue for ncost.. 2022. 2. 9.
[백준] 4386번 - 별자리 만들기 (파이썬) # 별자리 만들기 import heapq import sys import math input = sys.stdin.readline N = int(input()) star = [] for _ in range(N): x, y = map(float, input().split()) star.append((x, y)) arr = [[]for _ in range(N)] for i in range(N): for j in range(N): if i == j: continue x, y = star[i][0], star[i][1] nx, ny = star[j][0], star[j][1] dist = math.sqrt(abs(x-nx)**2+abs(y-ny)**2) arr[i].append((dist, j)) result .. 2022. 2. 9.
[백준] 17136번 - 색종이 붙이기 (파이썬) # 색종이 붙이기 import sys import copy input = sys.stdin.readline MAX = sys.maxsize N = 10 arr = [] length_one = 0 for i in range(N): arr.append(list(map(int, input().split()))) for j in range(N): if arr[i][j] == 1: length_one += 1 paper = [5] * 6 paper[0] = 0 result = MAX def check(x, y, nx, ny, arr): possible = True if 0 2022. 2. 7.