๐ ์๊ณ ๋ฆฌ์ฆ
14
์๊ณ ๋ฆฌ์ฆ ๊ฐ๋
๋ฐ ๋ฌธ์ ํ์ด ์ ๋ฆฌ
[ํ๋ก๊ทธ๋๋จธ์ค/Python] ๊ฐ์ฅ ํฐ ์๋ฌธ์ 0 ๋๋ ์์ ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์์๋ด ์ฃผ์ธ์.์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ ์๋ 6210์
๋๋ค.0 ๋๋ ์์ ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ

[ํ๋ก๊ทธ๋๋จธ์ค/Python] K๋ฒ์งธ ์https://school.programmers.co.kr/learn/courses/30/lessons/42748๋ฌธ์ ๋ฐฐ์ด array์ i๋ฒ์งธ ์ซ์๋ถํฐ j๋ฒ์งธ ์ซ์๊น์ง ์๋ฅด๊ณ ์ ๋ ฌํ์ ๋, k๋ฒ์งธ์ ์๋ ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.์๋ฅผ ๋ค์ด array๊ฐ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉดarray์ 2๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ๊น์ง

[ํ๋ก๊ทธ๋๋จธ์ค/Python] ์ต์์ง์ฌ๊ฐํ๋ฌธ์ ๋ช
ํจ ์ง๊ฐ์ ๋ง๋๋ ํ์ฌ์์ ์ง๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ค์ํ ๋ชจ์๊ณผ ํฌ๊ธฐ์ ๋ช
ํจ๋ค์ ๋ชจ๋ ์๋ฉํ ์ ์์ผ๋ฉด์, ์์์ ๋ค๊ณ ๋ค๋๊ธฐ ํธํ ์ง๊ฐ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์๊ฑด์ ๋ง์กฑํ๋ ์ง๊ฐ์ ๋ง๋ค๊ธฐ ์ํด ๋์์ธํ์ ๋ชจ๋ ๋ช
ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ์กฐ์ฌํ์ต๋๋ค.์๋ ํ๋ 4๊ฐ์ง ๋ช
ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋
๋๋ค.๋ช
ํจ ๋ฒํธ๊ฐ๋ก ๊ธธ์ด์ธ๋ก

[ํ๋ก๊ทธ๋๋จธ์ค/Python] ์ฌ๋ฐ๋ฅธ ๊ดํธhttps://school.programmers.co.kr/learn/courses/30/lessons/12909๋ฌธ์ ๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์
๋๋ค. ์๋ฅผ ๋ค์ด"()()" ๋๋ "(())()" ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์
๋๋ค.")()(" ๋๋ "(()(" ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์
๋๋ค.'('

[ํ๋ก๊ทธ๋๋จธ์ค/Python] ๋จ์ด ๋ณํhttps://school.programmers.co.kr/learn/courses/30/lessons/43163๋ฌธ์ ๋ ๊ฐ์ ๋จ์ด begin, target๊ณผ ๋จ์ด์ ์งํฉ words๊ฐ ์์ต๋๋ค. ์๋์ ๊ฐ์ ๊ท์น์ ์ด์ฉํ์ฌ begin์์ target์ผ๋ก ๋ณํํ๋ ๊ฐ์ฅ ์งง์ ๋ณํ ๊ณผ์ ์ ์ฐพ์ผ๋ ค๊ณ ํฉ๋๋ค.1. ํ ๋ฒ์ ํ ๊ฐ์ ์ํ๋ฒณ๋ง ๋ฐ๊ฟ ์ ์์ต๋๋ค.
2.

[์๊ณ ๋ฆฌ์ฆ/Python] ์ด๋ถํ์์ด๋ถํ์ Binary Searchํ์ ๋ฒ์๋ฅผ ๋ ๋ถ๋ถ์ผ๋ก ๋ถํ ํ๋ฉด์ ์ฐพ๋ ๋ฐฉ์ํ์์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ ์ํ๋ก ํด์ผ ํ๋ค.์๊ฐ๋ณต์ก๋์ ์ฒด ํ์ : O(N)์ด๋ถ ํ์ : O(logN)์๋ ๋ฐฉ์๋ฐ์ดํฐ ์ ๋ ฌ๋ฐ์ดํฐ์ ์ค๊ฐ๊ฐ(mid)์ด ์ฐพ๊ณ ์ ํ๋ ๊ฐ(target)์ธ์ง ๋น๊ตmid ๊ฐ์ด target ๊ฐ๊ณผ ๋ค๋ฅด๋ฉด ๋์๊ด๊ณ๋ฅผ ๋น๊ตํ์ฌ ํ์ ๋ฒ์๋ฅผ ์ขํ๊ณ , target๊ณผ mid

[์๊ณ ๋ฆฌ์ฆ/Python] ๋์ ๊ณํ๋ฒ DP๋์ ๊ณํ๋ฒ Dynamic Programming๋ณต์กํ ๋ฌธ์ ๋ฅผ ๊ฐ๋จํ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์ ๋ก ๋๋์ด ํธ๋ ๋ฐฉ๋ฒํ ๊ฐ์ง ๋ฌธ์ ์ ๋ํด์ ํ ๋ฒ๋ง ํ๋๋ก ๋ง๋ค์ด์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ๋๊ฐ์ ์ฐ์ฐ์ ๋ฐ๋ณตํ์ง ์๋๋ก ํ๋ค.๋ฉ๋ชจ์ด์ ์ด์
(Memoization) : ํ ๋ฒ ๊ณ์ฐํ ๋ฌธ์ ๋ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ์ ์ฅํด๋๊ณ ํ์ฉํ๋ ๋ฐฉ์์ฌ์ฉ ์กฐ๊ฑด์ต์ ๋ถ๋ถ ๊ตฌ์กฐ (Optimal Substruct

[ํ๋ก๊ทธ๋๋จธ์ค/Python] ๋คํธ์ํฌ๋ฌธ์ ๋คํธ์ํฌ๋ ์ปดํจํฐ ์ํธ ๊ฐ์ ์ ๋ณด๋ฅผ ๊ตํํ ์ ์๋๋ก ์ฐ๊ฒฐ๋ ํํ๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ปดํจํฐ A์ ์ปดํจํฐ B๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์๊ณ , ์ปดํจํฐ B์ ์ปดํจํฐ C๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ ๋ ์ปดํจํฐ A์ ์ปดํจํฐ C๋ ๊ฐ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์ ๋ณด๋ฅผ ๊ตํํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ปดํจํฐ A, B, C๋ ๋ชจ๋ ๊ฐ์ ๋คํธ์ํฌ ์์ ์๋ค๊ณ ํ ์ ์์ต๋๋ค.์ปดํจํฐ

[์๊ณ ๋ฆฌ์ฆ/Python] BFS & DFS์ธ์ ํ๋ ฌ (Adjacency Matrix)2์ฐจ์ ๋ฐฐ์ด๋ก ๊ทธ๋ํ์ ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ํํํ๋ ๋ฐฉ์ํ์ํ ๋๋ชจ๋ ๋
ธ๋๋ฅผ ํ์ธํด์ผ ํ๋ฏ๋ก ์๊ฐ๋ณต์ก๋๋ O(N^2)์ด๋ค.ํ๋ ฌ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ๋น ๋ฅด๊ฒ ์ ๊ทผ ๊ฐ๋ฅํ๋ฏ๋ก, graphi ์กฐํ๋ O(1)์ด๋ค.๋
ธ๋ ๊ฐ์๊ฐ ์ ๊ณ ๊ฐ์ ์ด ๋ง์ ๋ ํ์ฉ(0) --- (1)
\
\
(2)graph = [

[๋ฐฑ์ค/Python] 1138๋ฒ: ํ ์ค๋ก ์๊ธฐ[1138๋ฒ] ํ ์ค๋ก ์๊ธฐ๋ฌธ์ N๋ช
์ ์ฌ๋๋ค์ ๋งค์ผ ์์นจ ํ ์ค๋ก ์ ๋ค. ์ด ์ฌ๋๋ค์ ์๋ฆฌ๋ฅผ ๋ง์๋๋ก ์์ง ๋ชปํ๊ณ ์ค๋ฏผ์์ ์ง์๋๋ก ์ ๋ค.์ด๋ ๋ ์ฌ๋๋ค์ ์ค๋ฏผ์์ด ์ฌ๋๋ค์ด ์ค ์๋ ์์น๋ฅผ ๊ธฐ๋กํด ๋๋๋ค๋ ๊ฒ์ ์์๋ค. ๊ทธ๋ฆฌ๊ณ ์์นจ์ ์๊ธฐ๊ฐ ๊ธฐ๋กํด ๋์ ๊ฒ๊ณผ ์ฌ๋๋ค์ด ์ค์ ์ ์์น๊ฐ ๋ง๋์ง ํ์ธํ๋ค.์ฌ๋๋ค์ ์๊ธฐ๋ณด๋ค ํฐ ์ฌ๋์ด ์ผ์ชฝ์ ๋ช ๋ช
์์๋์ง๋ง์ ๊ธฐ

[๋ฐฑ์ค/Python] 1026๋ฒ: ๋ณด๋ฌผ[1026๋ฒ] ๋ณด๋ฌผ๋ฌธ์ ์๋ ์์ ์ ์ํ์ด ํญ์ ํฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ์๋ ๋๋ผ๊ฐ ์์๋ค. ์ด ๋๋ผ์ ๊ตญ์ ๊น์ง๋ฏผ์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ด๊ณ ํฐ ์๊ธ์ ๊ฑธ์๋ค.๊ธธ์ด๊ฐ N์ธ ์ ์ ๋ฐฐ์ด A์ B๊ฐ ์๋ค. ๋ค์๊ณผ ๊ฐ์ด ํจ์ S๋ฅผ ์ ์ํ์.S = A[0] ร B[0] + ... + A[N-1] ร B[N-1]S์ ๊ฐ์ ๊ฐ์ฅ ์๊ฒ ๋ง๋ค๊ธฐ ์ํด A์ ์๋ฅผ ์ฌ๋ฐฐ์ดํ์. ๋จ, B์

[๋ฐฑ์ค/Python] 11399๋ฒ: ATM[11399๋ฒ] ATM๋ฌธ์ ์ธํ์ํ์๋ ATM์ด 1๋๋ฐ์ ์๋ค. ์ง๊ธ ์ด ATM์์ N๋ช
์ ์ฌ๋๋ค์ด ์ค์ ์์๋ค. ์ฌ๋์ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์์ผ๋ฉฐ, i๋ฒ ์ฌ๋์ด ๋์ ์ธ์ถํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ Pi๋ถ์ด๋ค.์ฌ๋๋ค์ด ์ค์ ์๋ ์์์ ๋ฐ๋ผ์, ๋์ ์ธ์ถํ๋๋ฐ ํ์ํ ์๊ฐ์ ํฉ์ด ๋ฌ๋ผ์ง๊ฒ ๋๋ค. ์๋ฅผ ๋ค์ด, ์ด 5๋ช
์ด ์๊ณ , P1 = 3, P2 = 1

[๋ฐฑ์ค/Python] 2839๋ฒ: ์คํ ๋ฐฐ๋ฌ[2839๋ฒ] ์คํ ๋ฐฐ๋ฌ๋ฌธ์ ์๊ทผ์ด๋ ์์ฆ ์คํ๊ณต์ฅ์์ ์คํ์ ๋ฐฐ๋ฌํ๊ณ ์๋ค. ์๊ทผ์ด๋ ์ง๊ธ ์ฌํ๊ฐ๊ฒ์ ์คํ์ ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ์ ๋ฐฐ๋ฌํด์ผ ํ๋ค. ์คํ๊ณต์ฅ์์ ๋ง๋๋ ์คํ์ ๋ด์ง์ ๋ด๊ฒจ์ ธ ์๋ค. ๋ด์ง๋ 3ํฌ๋ก๊ทธ๋จ ๋ด์ง์ 5ํฌ๋ก๊ทธ๋จ ๋ด์ง๊ฐ ์๋ค.์๊ทผ์ด๋ ๊ท์ฐฎ๊ธฐ ๋๋ฌธ์, ์ต๋ํ ์ ์ ๋ด์ง๋ฅผ ๋ค๊ณ ๊ฐ๋ ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 18ํฌ๋ก๊ทธ๋จ ์คํ์ ๋ฐฐ๋ฌํด์ผ ํ ๋,

[์๊ณ ๋ฆฌ์ฆ/Python] ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ (Greedy Algorithm)1. ๊ทธ๋ฆฌ๋ (Greedy) ์๊ณ ๋ฆฌ์ฆํ์๋ฒ(Greedy)์ ํ์ฌ ์ํฉ์์ ๊ฐ์ฅ ์ข์ ๊ฒ๋ง ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ์ ์๋ฏธํ๋ค.๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ฉด ๋งค ์๊ฐ ๊ฐ์ฅ ์ข์๋ณด์ด๋ ๊ฒ์ ์ ํํ๋ฉฐ, ํ์ฌ์ ์ ํ์ด ๋์ค์ ๋ฏธ์น ์ํฅ์ ๋ํด์๋ ๊ณ ๋ คํ์ง ์๋๋ค.๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํน์ง์ '์ฌ์ ์ ์ธ์ฐ๊ณ ์์ง ์์๋ ํ ์ ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ฌธ์ ์ ํ'์ด๋ค. ์ฆ, ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์

ํ๊ทธ
์๊ณ ๋ฆฌ์ฆPython๊ทธ๋ฆฌ๋์ ๋ ฌ๋ฐฑ์คDP์ฝ๋ฉํ
์คํธ๊ตฌํBFSDFSํ๋ก๊ทธ๋๋จธ์ค์ด์งํ์์คํ์์ ํ์
์ต๊ทผ ๋๊ธ
์์ง ๋๊ธ์ด ์์ด์