목록코딩 테스트/백준 문제 풀이 (107)
공부 기록장
https://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 코드 import heapq, sys input = sys.stdin.readline INF = int(1e9) def dijkstra(start): q = [] heapq.heappush(q, (0, start)) distance[start] = 0 while q: dist, now = heapq.heappop(q) if distance[now] < dist..
https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 코드 import sys input = sys.stdin.readline INF = int(1e9) # 노드 간선 개수 입력 받기 n = int(input()) m = int(input()) # 2차원 리스트로 그래프 표현 graph = [[INF] * (n+1) for _ in range(n+1)] for a in range(1, n+1): for b in range(1, n+1): if a =..
https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 코드 from collections import deque n, k = map(int, input().split()) q = deque() q.append(n) visited = [-1 for _ in range(100001)] visited[n] = 0 while q: s = q.popleft() if s == k: print(visited[s]) break..
https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 코드 n, k = map(int, input().split()) num = list(map(int, input())) st = [num[0]] for i in range(1, len(num)): while len(st) > 0 and k > 0: if st[-1] 0: print(''.join(map(str, st[:-k]))) else: print(''.join..