분류 전체보기 135

[이코테] CH10 그래프 이론 크루스칼 알고리즘 기본 코드

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq import copy import itertools from itertools import combinations from itertools import permutations INF = 1e9 def find_parent(parent,x): if parent[x]!=x: parent[x] = find_parent(parent,parent[x]) return parent[x] def union_parent(parent,a,b): a = find_parent(parent,a) b = find_parent(pare..

[인프런] 자바 개념 메모장

개발자로서의 한 걸음 자바 공부를 시작했습니다 기본부터 빠르게 훑고 넘어가는 과정에서 좀 기억 안나거나 장기기억으로 가져가야 하는 부분들을 메모로 남겨두려고 합니다 ! - 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 전 사실 전공자기도 하고 자바를 못하긴 했지만 한번씩 다 한 상태라 기본 문제들 이런거 과감하게 패스하고 기억 안나는 부분들만 강의 다시 봤습니다 - 문자열 입력받는 예시 Scanner scanner = new Scanner(System.in); System.out.print("문자열을 입력하세요:"); String str = scanner.nextLine(); 저 Scanner 굉장히 오랜만에 보네.. 3년만이야 정수입력은 scanner.nextInt();로 받아주면 된다 문자열입력..

[이코테] CH09 최단경로 실전문제 40번 숨바꼭질

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq import copy import itertools from itertools import combinations from itertools import permutations INF = 1e9 def findMax(start): q = [] heapq.heappush(q,(0,start)) distance[start] = 0 while q: dist,now = heapq.heappop(q) # now는 노드 번호고 dist는 비용 if distance[now] < dist: continue for i in g..

[이코테] CH09 최단경로 실전문제 39번 화성 탐사

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq import copy import itertools from itertools import combinations from itertools import permutations INF = 1e9 def findMin(): dx = [-1,0,1,0] dy = [0,1,0,-1] # 상하좌우 움직일 수 있으므로!! q = [] heapq.heappush(q,(graph[0][0],0,0)) # 비용, row, col (start) while q: dist,row,col = heapq.heappop(q) # 힙에서..

[이코테] CH09 최단경로 실전문제 38번 정확한 순위

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq import copy import itertools from itertools import combinations from itertools import permutations INF = 1e9 N,M = map(int,sys.stdin.readline().split()) graph = [[INF] *(N+1) for _ in range(N+1)] for _ in range(M): a,b = map(int,sys.stdin.readline().split()) graph[a][b] = 1 # 정순이면 a < b ..

[이코테] CH09 최단경로 실전문제 37번 플로이드

https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 문제 n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다..

[이코테] CH09 최단경로 실전문제 3번 전보

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq import copy import itertools from itertools import combinations from itertools import permutations INF = 1e9 def djikstra(start): q = [] distance[start] = 0 heapq.heappush(q,(0,start)) # 0은 거리 start는 노드 번호 while q: dist,now = heapq.heappop(q) if distance[now] < dist: # 갱신할 필요 없음 continue..

[이코테] CH09 최단경로 실전문제 2번 미래도시

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq import copy import itertools from itertools import combinations from itertools import permutations INF = 1e9 N,M = map(int,sys.stdin.readline().split()) graph = [[INF] *(N+1) for _ in range(N+1)] for _ in range(M): a,b = map(int,sys.stdin.readline().split()) graph[a][b] = 1 graph[b][a] =..

[이코테] CH09 최단경로 플로이드 워셜 알고리즘 기본 코드

사용되는 경우: 모든 지점에서 다른 모든 지점까지의 최단 경로 다익스트라 알고리즘과의 차이점: 다익스트라 : 시작점이 정해져 있다 . 그리디 알고리즘 사용 / 시간복잡도 O(ElogV) 플로이드 워셜 알고리즘: 시작점 정해지지 않음. 다이나믹 프로그래밍과 유사 / 시간복잡도 O(N^3) import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq import copy import itertools from itertools import combinations from itertools import permutations INF = 1e9 n = int(input()) m..

[이코테] CH09 최단경로 개선된 다익스트라 알고리즘 기본 코드

한번 개념 공부하고 문제도 풀었었지만 여전히 까먹는다 까먹지 않도록 장기기억으로 가져가도록 하자 기본 코드는 정말정말 기본이 되어야 하므로 이걸 올리고도 한번 더 해봐야겠다는 생각이 들었다 한줄 한줄 이게 왜 존재해야 하는 코드인지 다시 생각해봐야겠다. 시간복잡도 : O(ElogV) import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq import copy import itertools from itertools import combinations from itertools import permutations INF = 1e9 def djikstra(start):..