본문 바로가기

go3

백준 게임개발 (Python/Go) 문제 링크: www.acmicpc.net/problem/1516 위상 정렬 문제입니다. 그런데 최소 시간을 알아내야 하기 때문에 위상정렬 + heap을 사용하여 풀어야 합니다. 아래는 파이썬 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 import heapq from collections import defaultdict n = int(input()) degree = [0] * (n+1) # degree[1] = 2 이라면 1번 건물을 짓기 위해 먼저 지어져야 하는 건물이 2개라는 뜻 time = [0] * (n+1) # 각 건물 짓는데 걸.. 2021. 4. 4.
백준 최단경로 (Python/Go) 문제 링크: www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net 기본 다익스트라 문제입니다. 아래는 파이썬 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 from collections import defaultdict import heapq def dijkstra(start): dist = defaultdict(in.. 2021. 4. 3.
백준 피자굽기 (Python/Go) 문제 링크: www.acmicpc.net/problem/1756 1756번: 피자 굽기 첫째 줄에 오븐의 깊이 D와 피자 반죽의 개수 N이 공백을 사이에 두고 주어진다. (1 rp { break } mid := (lp + rp) / 2 diameter := oven[mid] if diameter >= dough { lp = mid + 1 piledLoc = mid isPiled = true } else { rp = mid - 1 } } return piledLoc, isPiled } func main() { var d, n int fmt.Scanln(&d, &n) oven := make([]int, d) doughs := make([]int, n) scanner := bufio.NewScanner(os... 2021. 4. 2.