๐๋ฌธ์ ํ์ด/๐งฉBaekjoon
[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์ ์ฐ๊ฒฐ๋ ๋ ธ๋๋ฅผ ์๋ฏธํ๊ณ ..
[Python] ๋ฐฑ์ค 1463 1๋ก ๋ง๋ค๊ธฐ | DP
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/1463 1463๋ฒ: 1๋ก ๋ง๋ค๊ธฐ ์ฒซ์งธ ์ค์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 106๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์ N์ด ์ฃผ์ด์ง๋ค. www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ์ ํ์ ์ธ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ์ด๋ค. - ๊ฐ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ ํ์ํ ์ต์ ์ฐ์ฐ์ ์ ์ฅํ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฅ ๋ฐ์ N ํฌ๊ธฐ๋ก ์์ฑ. - ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฐํ ์ (BottomUp) : ๋ฐ๋ณต๋ฌธ ํ๋ค์ด(TopDown) : ์ฌ๊ท ๋ฐํ ์ ๋ฐฉ์์ด ์คํ ํฌ๊ธฐ ์ ํ์ผ๋ก๋ถํฐ ์์ ๋ก์์ผ๋ก, ์ฒ์ ์ฐ์ฐ์ ์ ์ฅํ์ฌ ์ดํ ๋์ผํ ์ฐ์ฐ ๋ฐ์์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต ์ฐ์ฐ์ ํผํ ์ ์๋ค. - ์ต์ข ์ ์ผ๋ก 1์ ๋ง๋๋ ํ๋ก๊ทธ๋จ์ด๋ฏ๋ก 2๋ถํฐ ๊ตฌํ๋ ค๋ n๊น์ง ๊ฐ ์๋ฅผ ..
[Python] ๋ฐฑ์ค 9663 N-Queen | ์๊ฐ์ด๊ณผ
์ ๋ต์ ์๋ง๊ฒ ๋์ค๋๋ฐ ์๊พธ ์๊ฐ์ด๊ณผ๊ฐ ๋์ค๋ ๋ถ๋ค์ ์ธ์ด๋ฅผ Python3๊ฐ ์๋ Pypy3๋ก ์ค์ ํ๊ณ ์คํํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค ~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ ์ ํ์ ์ธ Backtracking ๋ฌธ์ ์ ๋๋ค! https://www.acmicpc.net/problem/9663 9663๋ฒ: N-Queen N-Queen ๋ฌธ์ ๋ ํฌ๊ธฐ๊ฐ N × N์ธ ์ฒด์คํ ์์ ํธ N๊ฐ๋ฅผ ์๋ก ๊ณต๊ฒฉํ ์ ์๊ฒ ๋๋ ๋ฌธ์ ์ด๋ค. N์ด ์ฃผ์ด์ก์ ๋, ํธ์ ๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ 1. row[i] : i๋ฒ์งธ ํ์์ ํธ์ ์ด ๊ฐ์ ๋ํ๋ด๋ 1์ฐจ์ ๋ฐฐ์ด row๋ฅผ ์ฌ์ฉํจ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น ๋ฐฉ์ง 2. promising ํจ์ : ๋๊ฐ์ ์ ์์นํ๊ฑฐ๋ ๊ฐ์ ์ด์ ์์นํ๋..
[Python] ๋ฐฑ์ค 10819 ์ฐจ์ด๋ฅผ ์ต๋๋ก | ์์ด/์กฐํฉ | Permutations/Combinations
~์ค๋ฒ 2~ ๋ฐฑํธ๋ํน(Backtracking) ์๊ณ ๋ฆฌ์ฆ์ ํ์ตํ๋ ๊ณผ์ ์์ ๋ง๋ ๋ฐฑ์ค ๋ฌธ์ ! https://www.acmicpc.net/problem/10819 10819๋ฒ: ์ฐจ์ด๋ฅผ ์ต๋๋ก ์ฒซ์งธ ์ค์ N (3 ≤ N ≤ 8)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ๋ฐฐ์ด A์ ๋ค์ด์๋ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ๋ฐฐ์ด์ ๋ค์ด์๋ ์ ์๋ -100๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. www.acmicpc.net [์ต์ข ์ฝ๋] from itertools import permutations n = int(input()) alist = list(map(int, input().split())) maxN = 0 nPr = permutations(alist) for p in nPr: temp = 0 for i in range(n-1): ..
[Python] ๋ฐฑ์ค 2089 -2์ง์
~์ค๋ฒ 2~ [ํด๊ฒฐ ํฌ์ธํธ] 1. 2์ง์์ฒ๋ผ -2์ ๋๋จธ์ง๋ฅผ ์ ์ฅํ์ฌ ์ถ๋ ฅ 2. ๋๋จธ์ง๊ฐ 0์ด ์๋ ๋ +1 [์ต์ข ์ฝ๋] n = int(input()) result = [] if n == 0: # ์ ๋ ฅ ๊ฐ์ด 0์ผ ๋ print(0) else: while n != 0: temp = n % -2 result.append(-temp) n //= -2 if temp: # ๋๋จธ์ง๊ฐ 0์ด ์๋๋ผ๋ฉด n += 1 for r in reversed(result): print(r, end="") ์์ ์ ๋ ฅ์ฒ๋ผ -13์ด ๋ค์ด์๋ค๊ณ ์๊ฐํด๋ณด์ REFERENCE https://suri78.tistory.com/119 [๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ] 2089๋ฒ: -2์ง์ -Python [๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ] 2089๋ฒ: -2์ง์ -Python http..
[Python] ๋ฐฑ์ค 1107 ๋ฆฌ๋ชจ์ปจ | EOFError | ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
~๊ณจ๋5~ EOFError๊ฐ ๋ ์ ํด๋น ๋ฌธ์ ๋ฅผ ํ์ง ๋ชปํ๋๋ฐ, ๋ค์ ๋๊ธ์ ๋ณด๊ณ ํด๊ฒฐํ ์ ์์๋ค..! ๊ฐ์ ์ค๋ฅ๋ก ๊ณ ์ํ์๋ ๋ถ์ ์ฐธ๊ณ ํ์ ์~ [์ต์ข ์ฝ๋] target = int(input()) brokenButtonCount = int(input()) if brokenButtonCount == 0: # ๊ณ ์ฅ๋ ๋ฒํผ์ด ์๋ ๊ฒฝ์ฐ print(min(abs(100 - target), len(str(target)))) # 100์์ +/- vs target ๋ฒํผ ๋๋ฅด๊ธฐ else: brokenButton = list(map(int, input().split())) minN = abs(100 - target) # +/- ๋ง ์ฌ์ฉํ์ฌ ์ด๋ํ ๊ฒฝ์ฐ for num in range(1000001): # ์ฑ๋ ์ ํ์..
[Python] ๋ฐฑ์ค 16924 ์ญ์๊ฐ ์ฐพ๊ธฐ | ์์ ํ์ | ๋ธ๋ฃจํธํฌ์ค(Brute-force)
~์ค๋ฒ 2~ https://www.acmicpc.net/problem/16924 16924๋ฒ: ์ญ์๊ฐ ์ฐพ๊ธฐ ์ญ์๊ฐ๋ ๊ฐ์ด๋ฐ์ '*'๊ฐ ์๊ณ , ์ํ์ข์ฐ ๋ฐฉํฅ์ผ๋ก ๋ชจ๋ ๊ฐ์ ๊ธธ์ด์ '*'๊ฐ ์๋ ๋ชจ์์ด๋ค. ์ญ์๊ฐ์ ํฌ๊ธฐ๋ ๊ฐ์ด๋ฐ๋ฅผ ์ค์ฌ์ผ๋ก ์ํ์ข์ฐ ๋ฐฉํฅ์ผ๋ก ์๋ '*'์ ๊ฐ์์ด๋ค. ์ญ์๊ฐ์ ํฌ๊ธฐ๋ 1๋ณด๋ค ํฌ www.acmicpc.net [๊ตฌํ ํฌ์ธํธ] ๋๋ณด๊ธฐ 1. ์ ๊ณต๋ ์ ๋ ฅ ์ธ ์ญ์๊ฐ ๋ฐ๊ฒฌ์ '*'์ '.'์ผ๋ก ๋ณ๊ฒฝํ ๊ณต๊ฐ deepcopy 2. ์์ ํ์ํ๋ฉฐ '*' ๋ฐ๊ฒฌ์ ์ธ๋ฑ์ค๋ฅผ ๋ํ ์ญ์ ๋ชจ์ ํ์ธ 3. 2๋ฅผ ์ญ์ ๋ชจ์์ผ ๋๊น์ง ๋ฐ๋ณต - ๋ฐ๋ณต๋ง๋ค ์ฌ์ด์ฆ += 1 - ๋ฆฌ์คํธํ ๋ณ์์ (i, j, size) ์ถ๊ฐ - ์ญ์ ๋ชจ์์ ๋ํด '.' ์ฒ๋ฆฌ 4. ์์ ํ์ ํ ์ญ์๋ชจ์์ผ๋ก '.'์ฒ๋ฆฌํ ๊ณต๊ฐ์ '*'๊ฐ ์..