목록2024/09 (8)
공부 기록장
https://www.acmicpc.net/problem/11779 코드import heapqimport sysINF = int(1e9)input = sys.stdin.readlinen = int(input())m = int(input())graph = [[] for _ in range(n+1)]for _ in range(m): s, e, c = map(int, input().split()) graph[s].append([e, c])a, b = map(int, input().split())dist = [INF] * (n+1)prev_node = [0] * (n+1) # 최단 경로 출력을 위한 변수def dijkstra(a): q = [] heapq.heappush(q, (0, ..
작년에 코테 응시하면서 풀어 봤던 문제잘 기억은 안나는데, 어찌 저찌 풀이를 해서 테스트 케이스 몇 개는 통과했던 기억...근데 전체 통과는 못했던 걸로 기억한다 https://tech.kakao.com/posts/610 2024 카카오 겨울 인턴십 코딩테스트 문제해설 - tech.kakao.com안녕하세요, 카카오에서 계정시스템 개발을 맡고 있는 잭입니다. 2024 카카오 채...tech.kakao.com 공식 문제 해설을 보면, 생성된 노드와 각 그래프가 갖는 특성을 기반으로생성된 노드 번호와 각 그래프의 개수를 구한다 이러한 특성을 활용하기 위해서는 입력으로 주어지는 간선 정보를 정점별로 저장해야 한다.정점이 몇 개 인지 모르기 때문에 딕셔너리 자료 구조를 사용한다. def solution(edge..
https://www.acmicpc.net/problem/1238 코드# 다익스트라 두 번 쓰는 풀이import heapqINF = int(1e9)def dijkstra(start): distance = [INF] * (N+1) distance[start] = 0 q = [] heapq.heappush(q, (0, start)) while q: dist, now = heapq.heappop(q) if distance[now] 접근 방법- 플로이드 워셜로 풀면 되겠다고 생각했지만 시간 초과- N이 최대값인 경우 10억번의 연산이 필요하게 되고, 시간 초과 발생- 다익스트라를 2번 사용하는 풀이 참고 배운 점- 플로이드 워셜을 복습할 수 있었다- 다익스트..
https://www.acmicpc.net/problem/1916 코드import sysimport heapqinput = sys.stdin.readlineINF = int(1e9)n = int(input())m = int(input())graph = [[] for _ in range(n+1)]distance = [INF] * (n+1)for _ in range(m): a, b, c = map(int, input().split()) graph[a].append((b, c))start, end = map(int, input().split())def dijkstra(start): q = [] heapq.heappush(q, (0, start)) distance[start] = 0 ..