
Problem Solving ๐ฅ/ํ๋ก๊ทธ๋๋จธ์ค
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌด์ง์ ๋จน๋ฐฉ ๋ผ์ด๋ธ / ์ฐ์ ์์ ํ(ํ)
https://programmers.co.kr/learn/courses/30/lessons/42891# ์ฐ์ ์์ ํ ๋ฌธ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด foods_time์ด [3, 4, 5, 6, 7, 8, 9, 10] ์ด๋ผ๊ณ ํด๋ด ์๋ค. ์ด ์ ๋ณด๋ง ์ฃผ์ด์ก์ ๋ ๊ฐ์ฅ ์์ ๊ฐ์ธ 3, ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด์ ๊ธธ์ด 7 ์ด๋ 21์ด ํ์๋ [1, 2, 3, 4, 5, 6, 7] ์ด ๋จ์ ์ ์ ์๊ฒ ์ฃ ? ์ฆ N์ด(๊ฐ์ฅ ์์ ๊ฐ x ๋ฐฐ์ด์ ๊ธธ์ด)ํ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ฅ ์์ ๊ฐ, ๋ฐฐ์ด์ ๊ธธ์ด๋ก ์ ์ ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ์์ ๊ฐ => ์ฐ์ ์์ ํ ์์ ์๊ณ ๋ฆฌ์ฆ์ ์กฐ๊ธ ํ์ด๋ณด์ ๋ถ๋ค์ ์ฝ๊ฒ ๋์น์ฑ์ จ๊ฒ ์ฃ ?? ๊ฐ์ฅ ์์ ๊ฐ x ๋ฐฐ์ด์ ๊ธธ์ด๋ก ๊ณ์ ์ ํ๋ฅผ ํด์ค๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๊ฐ์ด ์ด์ K์ด ํ๋ฅผ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ ๋ฉ์ถฐ์ค๋๋ค. ๊ทธ ๋๋ถํฐ๋ ๋ชจ๋..
ํ๋ก๊ทธ๋๋จธ์ค / 2018 KAKAO ์๋์์ฑ / ํ์ด์ฌ / ํธ๋ผ์ด
programmers.co.kr/learn/courses/30/lessons/17685 Trie ์๋ฃ๊ตฌ์กฐ๋ฅผ ์๋ค๋ฉด ์ฌ์ด ๋ฌธ์ ์ด๊ณ ๋ชจ๋ฅด๋ฉด ์ด๋ ค์ด ๋ฌธ์ ์ ๋๋ค. Trie ์๋ฃ๊ตฌ์กฐ๋ฅผ ์กฐ๊ธ ๋ณํํ์ฌ ์ฝ๊ฒ ๊ตฌํํ ์ ์์์ต๋๋ค. Trie์ cnt๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. cnt๋ ๊ฐ์ ๋ฃจํธ๋ฅผ ๊ณต์ ํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ํ๋ ๋๋ค. cnt๊ฐ 1์ด๋ผ๋ฉด ๋ ์ด์ ์ฐพ์๋ณผ ์ด์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ cnt๋ ๋ฌธ์์ด ๊ธธ์ด๋ฅผ ๋์ ์ ์์์ ์ ์ํฉ๋๋ค. class Trie: def __init__(self): self.root = Node() def insert(self, s): node = self.root for c in s: if c in node.child: node.child[c].cnt += 1 else: node.c..
[ํ๋ก๊ทธ๋๋จธ์ค] ๋งค์ถ ํ๋ฝ ์ต์ํ / ํ์ด์ฌ / DP
programmers.co.kr/learn/courses/30/lessons/72416 ํ์คํ ์ด๋ ต๋ค์.. ๊ฐ์ธ์ ์ผ๋ก 2021 ์นด์นด์ค ๋ฌธ์ ์ค ๊ฐ์ฅ ์ด๋ ค์ ๊ณ , ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ฅผ ์ด์ฌํ ํด์ผ๊ฒ ๋ค๊ณ ๋๊ผ๋ ๋ฌธ์ ์ ๋๋ค.. DP๋ฌธ์ ์ธ๋ฐ, ์๊ฐ๋ณด๋ค ๊ตฌํ๋ฐฉ๋ฒ์ด ์ ์๋ ์ฌ๋ผ ๋ต์์ ๋ณด์์ต๋๋ค. ์ฐ์ Root๋ 1๋ฒ์ด๋, 1๋ฒ๋ถํฐ ํ์์ ์์ํฉ๋๋ค. ์ผ์ด์ค๋ ๋๊ฐ์ง ์ ๋๋ค 1) dp[n][1] => n๋ฒ ์ฌ๋์ด ์ ๋ฐ๋๋ ๊ฒฝ์ฐ 2) dp[n][0] => n๋ฒ ์ฌ๋์ด ์ ๋ฐ๋์ง ์๋ ๊ฒฝ์ฐ 1๋ฒ ์ผ์ด์ค์ ๊ฒฝ์ฐ์๋ ์ฝ๊ฒ ์๊ฐํ ์ ์๋๋ฐ์. n๋ฒ์ ๋งค์ถ์ก์ ๋ํ๊ณ n๋ฒ์ ์์๋ค์ด ์ ๋ฐ์ด ๋๋ , ์๋๋ ์ต์๊ฐ๋ง ์ ํํ๋ฉด ๋ฉ๋๋ค. 2๋ฒ ์ผ์ด์ค์ ๊ฒฝ์ฐ ์กฐ๊ธ ๊น๋ค๋กญ์ต๋๋ค. n๋ฒ์ ๋งค์ถ์ก์ ๋ํ์ง ์๊ณ , n๋ฒ์ ์์๋ค์ด ์ ๋ฐ์ด ๋๋ , ์๋..
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํจ์จ / Python
ํฌ๊ฒ ์ด๋ ค์ด ๋ถ๋ถ์ ์๋ ๋ฌธ์ ์์ต๋๋ค. ์ ๋ ฌ ํ ์ด์งํ์์ ํตํด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ ๋๋ค. programmers.co.kr/learn/courses/30/lessons/42889# ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์คํจ์จ ์คํจ์จ ์ํผ ๊ฒ์ ๊ฐ๋ฐ์ ์ค๋ ๋ฆฌ๋ ํฐ ๊ณ ๋ฏผ์ ๋น ์ก๋ค. ๊ทธ๋ ๊ฐ ๋ง๋ ํ๋์ฆ ์ค์ฒ์ฑ์ด ๋์ฑ๊ณต์ ๊ฑฐ๋์ง๋ง, ์์ฆ ์ ๊ท ์ฌ์ฉ์์ ์๊ฐ ๊ธ๊ฐํ ๊ฒ์ด๋ค. ์์ธ์ ์ ๊ท ์ฌ์ฉ์์ ๊ธฐ์กด ์ฌ์ฉ์ ์ฌ์ด์ ์ค programmers.co.kr from bisect import bisect_left, bisect_right def solution(N, stages): answer = [] P = len(stages) # ์ฌ๋ ์ stages.sort() for i in range(1, N+1): idx1 = bisect_..
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ๊ฒ์ / Python
https://programmers.co.kr/learn/courses/30/lessons/72412# ํจ์จ์ฑ ๋ถ๋ถ์์ ์ด๋ ค์ด ๋ฌธ์ ์์ต๋๋ค. ์ด์งํ์์ ๋ ์ฌ๋ ค์ผ ํ๊ณ , ์ด์งํ์์ ํ๋ ค๋ฉด Value๊ฐ์ ๋ชจ๋ ์ ๋ ฌํด์ผํ๋๋ฐ, ์ญ์ ์ค๋๋ง์ ํ๋ ค๋ ์ค๋์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ํ ์ ์ ๋น 4๊ฐ์ง ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ ํ ์ ์ ๋ 2^4์ผ๋ก ์ด 16๊ฐ์ Query์ ์ํฉ๋๋ค. ์ด Query๋ฅผ ์ ๋ ฌํ ํ, ์ด์งํ์์ผ๋ก ํ๋ฉด ๋๋ ๋ฌธ์ ์์ต๋๋ค. ์ฝํ ๋ฅผ ๋ณผ ๋ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด, ํจ์จ์ฑ ๋ถ๋ถ ๊ฐ์ ์ ํ๋ ค๋ฉด ์ฝ๋๋ฅผ ์ ๋ถ ๋ฐ๊ฟ์ผ ํด์, ๋ฉํ์ด ํ๋ค๋ฆด ์ ์๊ฒ ๋ค์. ์๊ฐ์ ๋ง์ดํ๊ณ ๋ฌธ์ ํ์ด ์์์ ํ๋ ์ต๊ด์ ๊ธธ๋ฌ์ผ๊ฒ ์ต๋๋ค. from bisect import bisect_left, bisect_right from collectio..
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฟ ํค ๊ตฌ์ / ํ์ด์ฌ
https://programmers.co.kr/learn/courses/30/lessons/49995 ์๊ทผํ ๊น๋ค๋ก์ด ๋ฌธ์ ์๋ค. ๊ฒฐ๊ตญ ๊ณ ๋ฏผ์ ์ผ๋ง ์ํ๊ณ ์ ๋ต์ ๋ณด๊ธด ํ๋ค.. ๋น์ฐํ ๋์ ํฉ ๋ฌธ์ ์ธ ์ค ์์๋๋ฐ, ๋์ ํฉ์ด๋ผ๊ณ ๋ณด๊ธฐ๋ ์กฐ๊ธ ์ ๋งคํ ์ฝ๋๊ฐ ๊ฐ์ฅ ํจ์จ์ ์ธ ์ฝ๋์๋ค. ์๊ณ ๋ฆฌ์ฆ์ ํฌํฌ์ธํฐ์ ๊ฐ๊น๋ค๊ณ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ํ์ด ๋ฐฉ๋ฒ์ ํ๋์ ๊ธฐ์ค ์ ์ ์ ํ๊ณ , ๋์๊ณผ ํ์ด ๊ทธ ๊ธฐ์ค ์ ์ผ๋ก๋ถํฐ ์ญ์ฑ ๋ํด ๋๊ฐ๋ ๊ฒ์ด๋ค. ๋์์ ์ฟ ํค๊ฐ ๋ ๋ง์ผ๋ฉด, ํ์ ์ฟ ํค๋ฅผ ์ฆ๊ฐ ํ์ ์ฟ ํค๊ฐ ๋ ๋ง์ผ๋ฉด ๋์์ ์ฟ ํค๋ฅผ ์ฆ๊ฐ.. ๋ฐ๋ณตํ๋ค. def solution(cookie): answer = 0 for i in range(len(cookie)-1): left, right = i, i+1 lsum = rsum = 0 lfl..
[ํ๋ก๊ทธ๋๋จธ์ค] 3 x n ํ์ผ๋ง / ํ์ด์ฌ
programmers.co.kr/learn/courses/30/lessons/12902# ์ฝ๋ฉํ ์คํธ ์ฐ์ต - 3 x n ํ์ผ๋ง programmers.co.kr ์ฒ์์๋ ๋๋ฌด ์ฝ๊ฒ ์๊ฐํ๋ค. ์ฒ์ ์๊ฐํ ์ ํ์์ dp[i] = dp[i-2] * 3 + dp[i-4] * 2 ์๋ค. ํ์ง๋ง ์ค๋ต์ด ๋ ์๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ๋นผ๋จน์๋ ๋ผ๋ ์๊ฐ์ ํ๊ฒ๋์๊ณ , ๋๋ฆ ์ฝ๊ฒ ๊ท์น์ ์ฐพ์ ์ ์์๋ค. ์ฐ์ n์ด ํ์์ธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์ 3 x ํ์ => ํ์ ์ด๋ค. ์ฆ ํ์์ธ ๊ฒฝ์ฐ๋ ํ์๊ฐ ๋์ค๋ฏ๋ก, ๊ธธ์ด๊ฐ 2์ธ ํ์ผ๋ค๋ก๋ ์ฑ์ฐ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํจ์ด ์๋ช ํ๋ค. ์ง์์ธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์. ์ง์๋ฅผ n์ด๋ผ๊ณ ๊ฐ์ ํด๋ณด์. ์ฐ์ 2๊ฐ๋ก ๋ง๋ค ์ ์๋๊ฑด ๊ทธ๋ ค๋ณด๋ฉด 3๊ฐ๊ฐ ๋์จ๋ค. ๊ทธ๋ฌ๋ n-2๊ฐ๋ก ๋ง๋ค ์ ์๋ ์ * 3์ผ๋ก ๋ง๋ค ์ ์๋ค. ..
[ํ๋ก๊ทธ๋๋จธ์ค] ์งํ ์ด๋ / ํ์ด์ฌ / MST(์ต์์ ์ฅํธ๋ฆฌ)
programmers.co.kr/learn/courses/30/lessons/62050 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์งํ ์ด๋ [[1, 4, 8, 10], [5, 5, 5, 5], [10, 10, 10, 10], [10, 10, 10, 20]] 3 15 [[10, 11, 10, 11], [2, 21, 20, 10], [1, 20, 21, 11], [2, 1, 2, 1]] 1 18 programmers.co.kr ์์ ์ ๋ฐฑ์ค์์ ํ์ด๋ณธ ๋ฌธ์ ๋ ๋น์ทํด์, ํฌ๊ฒ ์ด๋ ต์ง๋ ์์์ต๋๋ค. ์ด๋ ต์ง๋ ์์๋ฐ, ๊ตฌํ์ด ์กฐ๊ธ ๊ท์ฐฎ์ ๋ฌธ์ ๋ผ๊ณ ๋ณผ ์ ์๊ฒ ๋ค์. ์ฐ์ ๋ฌธ์ ์์์ ์๋ ๊ทธ๋ฆผ์์ ์ฝ๊ฒ ํํธ๋ฅผ ์ฐพ์๋๋ฐ, ๋ฐ๋ก ์ด๋ํ ์ ์๋ ์์ญ๊ฐ์ ๊ตฌ๋ถ์ ๋๋ค. ์ ๋ ์ด๋ฅผ ๋๋ฅ(land)์ด๋ผ๊ณ ํํํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ๋๋ฅ๋ง๋ค, ๋ฒํธ..
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ ธ์ด์ ํ / ํ์ด์ฌ
https://programmers.co.kr/learn/courses/30/lessons/12946# ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํ๋ ธ์ด์ ํ ํ๋ ธ์ด ํ(Tower of Hanoi)์ ํผ์ฆ์ ์ผ์ข ์ ๋๋ค. ์ธ ๊ฐ์ ๊ธฐ๋ฅ๊ณผ ์ด ๊ธฐ๋์ ๊ฝ์ ์ ์๋ ํฌ๊ธฐ๊ฐ ๋ค์ํ ์ํ๋ค์ด ์๊ณ , ํผ์ฆ์ ์์ํ๊ธฐ ์ ์๋ ํ ๊ธฐ๋ฅ์ ์ํ๋ค์ด ์์ ๊ฒ์ด ์์ ์๋๋ก ์์๋ programmers.co.kr ์ฌ๊ทํจ์๋ฅผ ์ฒ์ ๋ฐฐ์ ์ ๋, ๋ฐฑ์ค์์๋, ์ข ๋ง๋ถ์์๋ ๋ณด์๋ ํ๋ ธ์ด์ ํ ๋ฌธ์ ์ ๋๋ค. ํ์ง๋ง 1~2๋ ๋ง์ ๋ค์ ๋ณด๋, ๋ ์ด๋ป๊ฒ ํธ๋์ง ๊ฐ์ด ์์ค๋๋ผ๊ตฌ์.. ๊ณ ๋ฏผํ๊ณ .. ๊ณ ๋ฏผํ๊ณ .. ๊ณ ๋ฏผํ๋ค๊ฐ ํ์์ต๋๋ค ใ ใ ๊ฐ์ธ์ ์ผ๋ก๋ ์ด๋ ค์ด ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.. ์ฌ๊ทํจ์๋ฅผ ์๋ฏธ๋ก ์ ์ผ๋ก ์ ๊ทผํด์ผํ์ต๋๋ค. from์ผ๋ก๋ถํฐ to๊น์ง (n)๊ฐ์ ์ํ์ ๋..
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธธ ์ฐพ๊ธฐ ๊ฒ์ / ํ์ด์ฌ / ์๋ฃ๊ตฌ์กฐ(ํธ๋ฆฌ)
https://programmers.co.kr/learn/courses/30/lessons/42892 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ธธ ์ฐพ๊ธฐ ๊ฒ์ [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr ํ์ด ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ ํ ์ฌ์ฉํ๋์ง๋ฅผ ๋ฌป๋ ๋ฌธ์ ์๋ ๊ฒ ๊ฐ๋ค. ์ด์งํธ๋ฆฌ๋ฅผ ํ ๋ฒ ๊ตฌํํด ๋ณธ ๊ฒฝํ์ด ์์ผ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค. ์ฐ์ ๋์ด๋ณ๋ก ํ ๋ฒ ์ ๋ ฌ์ ํ ๋ค์์, ์ด์งํธ๋ฆฌ์ ๊ณ์ ์ถ๊ฐํ๋ ํ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์๋ค. ๋ฑํ ์ค๋ช ์ด ํ์์์ ๋ฏ ํ๋ค.. import heapq as h import sys sys.setrecursionlimit(100000) a..