๐๋ฌธ์ ํ์ด
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๋ฌด์ง์ ๋จน๋ฐฉ ๋ผ์ด๋ธ | Heap(ํ) | 2019 KAKAO BLIND RECRUITMENT
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/42891 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ๊ฐ์ฅ ์์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์์ ๋ถํฐ ์ฒ๋ฆฌํ๋ค. (heapq ์ฌ์ฉ) - ๋ง์ฝ ๋ชจ๋ ์์์ ๊ฐ์ ๋ณด๋ค k๊ฐ ํฌ๋ค๋ฉด ๋ชจ๋ ์์์ ๋จน๊ณ ๋ ์๊ฐ์ด ๋จ๋ ๊ฒ์ด๋ฏ๋ก -1 ๋ฐํ - ํ๋ฒ์ ๋กํ ์ด์ ์ ์ํด ํ์ํ ์์ ๊ฐ์๋, 0์ด ์๋ ์์์ ์์ด๋ค.(length) - (๋ค์ ์ต์ ์์ ๊ฐ์) - (์ด์ ์ ์ฒ๋ฆฌํ ์์ ๊ฐ์) = ํ์ฌ ์ฒ๋ฆฌํด์ผ..
[Python] ๋ฐฑ์ค 4485 ๋ น์ ์ท ์ ์ ์ ๊ฐ ์ ค๋ค์ง? | ๋ค์ต์คํธ๋ผ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/4485 4485๋ฒ: ๋ น์ ์ท ์ ์ ์ ๊ฐ ์ ค๋ค์ง? ์ ค๋ค์ ์ ์ค ๊ฒ์์์ ํํ์ ๋จ์๋ ๋ฃจํผ(rupee)๋ค. ๊ทธ๋ฐ๋ฐ ๊ฐํน '๋๋๋ฃจํผ'๋ผ ๋ถ๋ฆฌ๋ ๊ฒ์ ์ ๋ฃจํผ๋ ์กด์ฌํ๋๋ฐ, ์ด๊ฑธ ํ๋ํ๋ฉด ์คํ๋ ค ์์งํ ๋ฃจํผ๊ฐ ๊ฐ์ํ๊ฒ ๋๋ค! ์ ค๋ค์ ์ ์ค ์๋ฆฌ์ฆ์ ์ฃผ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ๋ค์ต์คํธ๋ผ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ ์์น๋ณ (0, 0)์์ ์ต์ ๋น์ฉ์ ๊ณ์ฐ - dr, dc : ๊ฐ ์์น์์ ์๋, ์, ์ค๋ฅธ์ชฝ, ์ผ์ชฝ ์์น๋ฅผ ๋ฐฉ๋ฌธ ํ๊ธฐ ์ํ ๋ฐฉํฅํค - graph : ๊ฐ ์์น ๋ฐฉ๋ฌธ์ ์ํด ํ์ํ ๋น์ฉ - distance : ๊ฐ ์์น์์ (0, 0)๊น์ง ๊ฐ๊ธฐ์ํ ์ต์ ๋น์ฉ, ์ด๊ธฐ๋ ๋ฌดํ์ ์์ฑ ์ฝ๋ imp..
[Python] ๋ฐฑ์ค 1504 ํน์ ํ ์ต๋จ ๊ฒฝ๋ก | ๋ค์ต์คํธ๋ผ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/1504 1504๋ฒ: ํน์ ํ ์ต๋จ ๊ฒฝ๋ก ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N๊ณผ ๊ฐ์ ์ ๊ฐ์ E๊ฐ ์ฃผ์ด์ง๋ค. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) ๋์งธ ์ค๋ถํฐ E๊ฐ์ ์ค์ ๊ฑธ์ณ์ ์ธ ๊ฐ์ ์ ์ a, b, c๊ฐ ์ฃผ์ด์ง๋๋ฐ, a๋ฒ ์ ์ ์์ b๋ฒ ์ ์ ๊น์ง ์๋ฐฉํฅ ๊ธธ์ด ์กด www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - v1 -> v2 ์์ ๋๋ v2 -> v1 ์์ ๊ฐ๊ฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ์ฌ ์์ ๊ฐ์ ์ถ๋ ฅํ๋ค. (2๋ฒ์ ๋ค์ต์คํธ๋ผ) - ๊ฒฝ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ(๊ฒฐ๊ณผ ๊ฐ์ด INF๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ) -1์ ์ถ๋ ฅ ์์ธํ ๋ด์ฉ์ ์ฝ๋ ์ฃผ์ ์ฐธ๊ณ ์์ฑ ์ฝ๋ import sys import heapq input =..
[Python] ๋ฐฑ์ค 13549 ์จ๋ฐ๊ผญ์ง 3 | ๋ค์ต์คํธ๋ผ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/13549 13549๋ฒ: ์จ๋ฐ๊ผญ์ง 3 ์๋น์ด๋ ๋์๊ณผ ์จ๋ฐ๊ผญ์ง์ ํ๊ณ ์๋ค. ์๋น์ด๋ ํ์ฌ ์ N(0 ≤ N ≤ 100,000)์ ์๊ณ , ๋์์ ์ K(0 ≤ K ≤ 100,000)์ ์๋ค. ์๋น์ด๋ ๊ฑท๊ฑฐ๋ ์๊ฐ์ด๋์ ํ ์ ์๋ค. ๋ง์ฝ, ์๋น์ด์ ์์น๊ฐ X์ผ www.acmicpc.net ์์ฑ ์ฝ๋ import heapq INF = int(1e9) N, K = map(int, input().split()) # ์์ ์์น, ๋์ฐฉ ์์น distance = [INF]*100001 # 100001๊ฐ์ ๋จ์ด์ง ๊ฑฐ๋ฆฌ def dijkstra(start): # ๋ค์ต์คํธ๋ผ distance[start] = 0 # ์์..
[Python] ๋ฐฑ์ค 1916 ์ต์๋น์ฉ ๊ตฌํ๊ธฐ | ๋ค์ต์คํธ๋ผ | ์๊ฐ์ด๊ณผ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/1916 1916๋ฒ: ์ต์๋น์ฉ ๊ตฌํ๊ธฐ ์ฒซ์งธ ์ค์ ๋์์ ๊ฐ์ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๊ณ ๋์งธ ์ค์๋ ๋ฒ์ค์ ๊ฐ์ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์งธ ์ค๋ถํฐ M+2์ค๊น์ง ๋ค์๊ณผ ๊ฐ์ ๋ฒ์ค์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. ๋จผ์ ์ฒ์์๋ ๊ทธ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ๋ฐ์ ์ ๋ ฅ์ด ๋ง์ผ๋ฏ๋ก sys.stdin.realine ์ ์ฌ์ฉํ๋ค. (์๊ฐ ์ด๊ณผ ํด๊ฒฐ) - ์ ํ์ ์ธ ๋ค์ต์คํธ๋ผ ๋ฌธ์ ์ ํ์ด๋ค - ์ฐ์ ์์ ํ(์ต์ํ)๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ ๊ฑฐ๋ฆฌ ๋ ธ๋๋ฅผ ์ ํ - distance : start ๋ ธ๋๋ก๋ถํฐ ๊ฐ ๋ ธ๋์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅ (INF ๋ก ์ด๊ธฐํ) - graph : ๊ฐ ..
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๊ฐ์ฅ ๋จผ ๋ ธ๋ | BFS | ๋ค์ต์คํธ๋ผ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/49189 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - BFS์ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๋ ๊ฐ์ง ํ์ด ๋ฐฉ์์ผ๋ก ํด๊ฒฐ (DFS๋ ๊ฐ๋ฅํ๋ python์ DFS ํจ์จ์ด ์ข์ง ๋ชป ํจ) ์์ธํ ์ค๋ช ์ ์ฃผ์ ์ฐธ๊ณ ์์ฑ ์ฝ๋ BFS ํ์ด from collections import deque def solution(n, edge): que = deque() # BFS๋ฅผ ์ํ ํ graph = [[]..
[Python] ๋ฐฑ์ค 11404 ํ๋ก์ด๋ | ํ๋ก์ด๋ ์์
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/11404 11404๋ฒ: ํ๋ก์ด๋ ์ฒซ์งธ ์ค์ ๋์์ ๊ฐ์ n์ด ์ฃผ์ด์ง๊ณ ๋์งธ ์ค์๋ ๋ฒ์ค์ ๊ฐ์ m์ด ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์งธ ์ค๋ถํฐ m+2์ค๊น์ง ๋ค์๊ณผ ๊ฐ์ ๋ฒ์ค์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. ๋จผ์ ์ฒ์์๋ ๊ทธ ๋ฒ์ค์ ์ถ๋ฐ ๋์์ ๋ฒํธ๊ฐ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํ๋ก์ด๋ ์์ ์๊ณ ๋ฆฌ์ฆ - graph : 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ ธ๋ ๋ณ ๊ฐ ๋ ธ๋๊น์ ์ต์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํ๋ค. graph[i][j] ๋ i์์ j๋ก ๊ฐ๊ธฐ ์ํ ์ต์ ์ด๋ ๊ฑฐ๋ฆฌ๋ฅผ ์๋ฏธํจ - ๊ฐ ๊ฐ์ ์ ๋ณด๋ฅผ ๋ฐ๋ผ ๋ฌดํ์(INF)๋ก ์ด๊ธฐํ ํ graph๋ฅผ ์์ ํ๋ค. ๋์ผํ ๋ ธ์ ์ ๊ธธ์ด๊ฐ ๋ค๋ฅธ ๊ฐ์ ์ด ์์์ผ๋ก ์ฃผ์ ํ์ - a -> b ๋ ธ์ ์ ๋..
[Python] ๋ฐฑ์ค 18352 ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ | ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/18352 18352๋ฒ: ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค์ ๋์์ ๊ฐ์ N, ๋๋ก์ ๊ฐ์ M, ๊ฑฐ๋ฆฌ ์ ๋ณด K, ์ถ๋ฐ ๋์์ ๋ฒํธ X๊ฐ ์ฃผ์ด์ง๋ค. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฑธ์ณ์ ๋ ๊ฐ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ๋ค์ต์คํธ๋ผ(Dijkstra) ์๊ณ ๋ฆฌ์ฆ - distance : X๋ก๋ถํฐ ๊ฐ ๋ ธ๋์ ๊ฐ์ฅ ์งง์ ๊ฒฝ๋ก. ๊ฒฝ๋ก๊ฐ ์๋ค๋ฉด ๋ฌดํ์(INF) - graph : ๊ฐ ๋ ธ๋๊ฐ ์ฐ๊ฒฐ๋์ด ์๋ ์ ๋ณด (์ฐ๊ฒฐ ๋ฆฌ์คํธ) - q : ์ง๊ธ๊น์ง ๊ณ์ฐ ๋ ๊ฑฐ๋ฆฌ ์ค ๊ฐ์ ์ด ๊ฐ์ฅ ์งง์ ๊ฒ์ ..
[Python] ๋ฐฑ์ค 1753 ์ต๋จ ๊ฒฝ๋ก | ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ 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 ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ๋ํ์ ์ธ ๋ค์ต์คํธ๋ผ(Dijkstra) ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ - ์์๋ ธ๋๋ถํฐ ๊ฐ ๋ ธ๋๊น์ง ์ต์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด(distance)์ ๋ฌดํ์(INF)๋ก ์ด๊ธฐํ - ์ฐ๊ฒฐ ๋ฆฌ์คํธ graph๋ฅผ ์ ์ธํ์ฌ ๊ฐ ๋ ธ๋์ ์ฐ๊ฒฐ ์ฌ๋ถ์ ๋ฌด๊ฒ๋ฅผ ํ๋ธํํ๋ก ์ ์ฅ : graph[i][0]์ i์ ์ฐ๊ฒฐ๋ ๋ ธ๋๋ฅผ ์๋ฏธํ๊ณ ..