Algorithm 13

[백준 / 파이썬] 1504번: 특정한 최단 경로

1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 정답 코드 import sys from heapq import heappush, heappop input = sys.stdin.readline def dijkstra(start): distance[start] = 0 heap = [(0, start)] while heap: min_dist, min_node = heappop(heap) if min_dist = INF: answer = -1 print(answer) 문제..

Algorithm 2023.07.13

[백준 / 파이썬] 17070번: 파이프 옮기기 1

17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 정답 코드 import sys input = sys.stdin.readline house_size = int(input()) house = [list(map(int, input().split())) for _ in range(house_size)] dp = [[[0]*3 for _ in range(house_size+1)] for _ in range(house_size+1)] dp[0][1][0] = 1 for r in range(hous..

Algorithm 2023.07.13

[백준 / 파이썬] 2096번: 내려가기

2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 정답 코드 import sys input = sys.stdin.readline n = int(input()) dp_max = dp_min = list(map(int, input().split())) for _ in range(1, n): a, b, c = map(int, input().split()) # 현재 위치에서의 최대값 구하기 dp_max = [ max(dp_max[0], dp_max[1]) + a, max(dp_max[0], dp_max[1], dp_max[2]) +..

Algorithm 2023.07.13