Github & Portfolio
๐ Problem Solving(119)
-
[๋ฐฑ์ค-1753] ์ต๋จ๊ฒฝ๋ก / Python
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 sys import heapq INF = int(1e9) V, E = map(int, sys.stdin.readline().split()) k = int(sys.stdin.readline()) graph = [[] for _ in range(V + 1)] distance = [INF] * (V + E) for _ in range(E): u, v, w = ma..
-
[์ด์ทจ์ฝ-์ต๋จ ๊ฒฝ๋ก] ๊ฐ์ ๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ / Python
์ ๋ ฅ 1. ๋ ธ๋ ๊ฐ์, ๊ฐ์ ๊ฐ์ ์ ๋ ฅ 2. ์์ ๋ ธ๋ ์ ๋ ฅ 3. ๊ฐ์ ๊ฐ์์ ๋ผ์ธ๋งํผ a, b, c ์ ๋ ฅ (a -> b, c์ ๋น์ฉ) ์ถ๋ ฅ ์์๋ ธ๋๋ก๋ถํฐ ๊ฐ ๋ ธ๋๊น์ง์ ๋น์ฉ ์ถ๋ ฅ import heapq INF = int(1e9) # ๋ฌดํ์ ์๋ฏธํ๋ ๊ฐ์ผ๋ก 10์ต์ ์ค์ # ๋ ธ๋์ ๊ฐ์, ๊ฐ์ ์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ n, m = map(int, input().split()) # ์์ ๋ ธ๋ ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ start = int(input()) # ๊ฐ ๋ ธ๋์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ ธ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ธฐ graph = [[] for i in range(n + 1)] # ์ต๋จ ๊ฑฐ๋ฆฌ ํ ์ด๋ธ์ ๋ชจ๋ ๋ฌดํ์ผ๋ก ์ด๊ธฐํ distance = [INF] * (n + 1) # ๋ชจ๋ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ for _ in ..
-
[๋ฐฑ์ค-1912] ์ฐ์ํฉ / Python
https://www.acmicpc.net/problem/1912 1912๋ฒ: ์ฐ์ํฉ ์ฒซ์งธ ์ค์ ์ ์ n(1 ≤ n ≤ 100,000)์ด ์ฃผ์ด์ง๊ณ ๋์งธ ์ค์๋ n๊ฐ์ ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ด ์ฃผ์ด์ง๋ค. ์๋ -1,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค. www.acmicpc.net n = int(input()) arr = list(map(int, input().split())) d = [0] * n d[0] = arr[0] for i in range(1, n): d[i] = max(arr[i - 1] + arr[i], arr[i], d[i - 1] + arr[i]) print(max(d)) ํด์ค ๊ฐ๋จํ DP ๋ฌธ์ ์๋ค. d[i] = max(arr[i - 1] + arr[i], arr[i..
-
[๋ฐฑ์ค-11053] ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด / Python
https://www.acmicpc.net/problem/11053 11053๋ฒ: ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด ์์ด A๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ฅผ ๋ค์ด, ์์ด A = {10, 20, 10, 30, 20, 50} ์ธ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ A = {10, 20, 10, 30, 20, 50} ์ด www.acmicpc.net n = int(input()) arr = list(map(int, input().split())) d = [0] * n for i in range(n): for j in range(i): if arr[i] > arr[j] and d[i] < d[j]: d[i] = d[j] d[i] += 1 print(max(d)) ํด์ค..
-
[๋ฐฑ์ค-1149] RGB๊ฑฐ๋ฆฌ / Python
https://www.acmicpc.net/problem/1149 1149๋ฒ: RGB๊ฑฐ๋ฆฌ ์ฒซ์งธ ์ค์ ์ง์ ์ N(2 ≤ N ≤ 1,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๊ฐ ์ง์ ๋นจ๊ฐ, ์ด๋ก, ํ๋์ผ๋ก ์น ํ๋ ๋น์ฉ์ด 1๋ฒ ์ง๋ถํฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ง์ ์น ํ๋ ๋น์ฉ์ 1,000๋ณด๋ค ์๊ฑฐ๋ www.acmicpc.net n = int(input()) data = [] for _ in range(n): data.append(list(map(int, input().split()))) for i in range(1, n): for j in range(3): if j == 0: data[i][j] = min(data[i - 1][1], data[i - 1][2]) + data[i][j] elif j..
-
[๋ฐฑ์ค-1932] ์ ์ ์ผ๊ฐํ / Python
https://www.acmicpc.net/problem/1932 1932๋ฒ: ์ ์ ์ผ๊ฐํ ์ฒซ์งธ ์ค์ ์ผ๊ฐํ์ ํฌ๊ธฐ n(1 ≤ n ≤ 500)์ด ์ฃผ์ด์ง๊ณ , ๋์งธ ์ค๋ถํฐ n+1๋ฒ์งธ ์ค๊น์ง ์ ์ ์ผ๊ฐํ์ด ์ฃผ์ด์ง๋ค. www.acmicpc.net n = int(input()) data = [] for _ in range(n): data.append(list(map(int, input().split()))) k = 2 for i in range(1, n): for j in range(k): if j == 0: data[i][j] = data[i][j] + data[i - 1][j] elif i == j: data[i][j] = data[i][j] + data[i - 1][j - 1] else: data[i][j]..