๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์๋์ ๊ณํ๋ฒ(Dynamic Programming)์ด๋?๋์ ๊ณํ๋ฒ์ ์์ฃผ ์ฝ๊ฒ ์ค๋ช
ํ์๋ฉด, '์ด๋ฏธ ๊ณ์ฐํ ๊ฑด ๊ธฐ์ตํด ๋์๋ค๊ฐ, ๋ค์ ํ์ง ๋ง์'๋ ์ ๋ต์ด๋ค.๋์ ๊ณํ๋ฒ(Dynamic Programming, DP)์ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ์์ ํ์ ๋ฌธ์ ๋ก ๋๋์ด ํด๊ฒฐํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ์ฌ ๋์ผํ ํ์ ๋ฌธ์ ๋ฅผ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ์ด๋ค. ์ฃผ๋ก ์ต์ ํ ๋ฌธ์ ๋ ์กฐํฉ ๋ฌธ์ ๋ฅผ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ ๋ ์ฌ์ฉ๋๋ค. ๋์ ๊ณํ๋ฒ์๋ Top-Down ๋ฐฉ์์ธ ๋ฉ๋ชจ์ด์ ์ด์
๊ณผ Bottom-Up ๋ฐฉ์์ธ ํ
์ด๋ธ๋ง์ด ์๋ค. Top-Down (๋ฉ๋ชจ์ด์ ์ด์
)์ฌ๊ท๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ. ํ์ ๋ฌธ์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ์ฌ ์ค๋ณต ๊ณ์ฐ ๋ฐฉ์งBottom-Up (ํ
์ด๋ธ๋ง)์์ ๋ฌธ์ ๋ถํฐ ์ฐจ๋ก๋๋ก ํด๊ฒฐ..
My Tech Blog (Algorithm/Programmers_Best)
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์์ด ๋ฌธ์ ๋ ๋๋ฌด ์ด๋ ค์์ ์ค์ค๋ก ํ๊ธฐ ํ๋ค์ด์ ๊ฒ์์ ๋์์ ๋ฐ์.์ฃผ์ด์ง ๋ฌธ์ ๋ ๊ทธ๋ํ ์ด๋ก ์ ์ต์ ์ ์ฅ ํธ๋ฆฌ(MST, Minimum Spanning Tree) ๋ฌธ์ ์ด๋ค. ์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ํ์ํ ์ ์ ์ง์- Union-Find(์ ๋์จ ํ์ธ๋) ์๋ฃ๊ตฌ์กฐ- Kruskal's Algorithm (ํฌ๋ฃจ์ค์นผ) ์๊ณ ๋ฆฌ์ฆ Kruskal's Algorithm (ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ)ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ์์ ๋งํ ์ต์์ ์ฅํธ๋ฆฌ(MST)๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฌธ์ ์ ๋ถ๋ฅ ๋ต๊ฒ greedy์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ฒฐ์ ์ ์๊ฐ๋ง๋ค ์ต์ ์ ๊ฒฐ์ ์ ํจ์ผ๋ก์ ์ต์ข
์ ์ธ ๋ต์ ๊ตฌํ๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋ ์ ์ ์ ์ต์ ๋น์ฉ์ผ๋ก ์ฐ๊ฒฐํ ์ ์๊ฒ ํด์ค๋ค.ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ์ ๋ชจ๋ ๊ฐ์ ์ ๊ฐ์ค์น ๊ธฐ์ค(์ฌ๊ธฐ์๋ ๋ค๋ฆฌ ๊ฐ์ค..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์์
์ถ๋ ฅ ์๋ก ์ฃผ์ด์ง route ๋ฐฐ์ด์ ๋ง๋๊ทธ๋ํ๋ก ๊ทธ๋ ค ๋ดค๋ค. ์ต์ํ์ ์นด๋ฉ๋ผ๋ฅผ ๋ฐฐ์นํด์ผ ํ๋ฏ๋ก ๊ตฌ๊ฐ ์ข
๋ฃ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ฐจ๋์ด ๊ตฌ๊ฐ์์ ์นด๋ฉ๋ผ๋ฅผ ๋จ ํ ๋ฒ๋ง์ด๋ผ๋ ๋ง๋๋ฉด ๋จ์ข
๋ฃ ์ง์ ์์ ๋ค์ ๊ตฌ๊ฐ๊ณผ ๊ฒน์น๊ฒ ๋๋ฏ๋ก ์ต์ํ์ ์นด๋ฉ๋ผ๋ฅผ ๋ฐฐ์น๊ฐ๋ฅ์นด๋ฉ๋ผ ๋ฐฐ์น๋ ๋๋ก์ ๊ฐ์ฅ ์ผ์ชฝ ๋๋ถํฐ ํ์ํ๋ฉฐ ์์๋๋ค.์
์ถ๋ ฅ ์์์์ MIN_VALUE์ธ -20 ์ง์ ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋ฉฐ ์ข
๋ฃ๊ตฌ๊ฐ๊ณผ ์์๊ตฌ๊ฐ์ด ๊ฒน์น๋ ๋ถ๋ถ์ ์นด๋ฉ๋ผ๊ฐ ๋ฐฐ์น๋๋ค.๊ตฌ๊ฐ ์ค ๊ฐ์ฅ ์ฒ์์ผ๋ก ๋ง๋๋ ์ข
๋ฃ ์์น๋ -15์ด๋ค.๋ฐ๋ผ์ ์ด ์์น์ ์ฒซ ๋ฒ์งธ ์นด๋ฉ๋ผ๋ฅผ ์ค์นํ๋ค. ๊ทธ๋ฆฌ๊ณ -13์ง์ ์์ ํ์ฌ ๊ตฌ๊ฐ๊ณผ ๋ค์ ๊ตฌ๊ฐ์ด ๋ง๋์ง๋ง ์ด๋ฏธ ํด๋น ๊ตฌ๊ฐ์๋ ์นด๋ฉ๋ผ๊ฐ ์ค์น ์๋ฃ ๋์์ผ๋ฏ๋ก ์คํตํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๊ตฌ๊ฐ์ธ [-..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์ ๋ฌธ์ ์ ํ์กฐ๊ฑด1. ํ ๋ฒ์ ์ต๋ ๋๋ช
๊น์ง ๋ณดํธ์ ํ์ธ ์ ์์2. ๋ชธ๋ฌด๊ฒ ํฉ์ด `limit` ์ดํ์ฌ์ผ ํจ ๋ฐ๋ผ์ ์ต์๋ณดํธ๋ฅผ ์ฌ์ฉํ๋ ์ ๋ต์ ์ง๋ ค๋ฉด ๋ฐฐ์ด์ ์ ๋ ฌํ์ฌ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋ + ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋ ์กฐํฉ์ ์ง์ง์ด์ผ ํจ.๊ฐ์ฅ ํฐ ๋ชธ๋ฌด๊ฒ๋ฅผ ๊ฐ์ง ์ฌ๋์ ์ต๋ํ ๋นจ๋ฆฌ ์ฒ๋ฆฌํ๋ฉด์๋ ๋ณดํธ ์ฌ์ฉ์ ์ค์ผ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค.๋ง์ฝ ๋ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ ํฉ์ด limit ์ดํ๋ผ๋ฉด, ํ ๋ณดํธ์ ํ์ธ ์ ์๋ค. ํฉ์ด limit์ ์ด๊ณผํ๋ค๋ฉด, ๋ฌด๊ฑฐ์ด ์ฌ๋์ ๋ฐ๋์ ํ ๋ช
๋ง ๋ณดํธ์ ํ์์ผ ํ๋ค.์ด๋ ๊ฒ ํ๋ ๊ฒ์ด ๋จ์ ์ฌ๋๋ค์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ต์ ์ ์ ํ์ด๋ค. โญ 3. ์ ๋ต์ฝ๋import java.util.*;class Solution { public int solution(i..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์์์ ํ์์ ์๋๋ ์ด์ ๋ฌธ์ ์์ number≤1,000,000์ผ๋ก ์ต๋ ๋ฐฑ๋ง์๋ฆฌ ์ซ์๊ฐ ๋ ์ ์๋ค. number ๊ฐ์ด ๋๋ฌด ์ปค์ ์์ ํ์์ ํ์ค์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ๋ค. k๋ 1 ์ด์ len(number) - 1 ์ดํ์๋ฅผ ๋ค์ด, ์ซ์๊ฐ 1,000,000์๋ฆฌ๋ผ๋ฉด ์ต๋ 999,999๊ฐ์ ์ซ์๋ฅผ ์ ๊ฑฐํด์ผ ํ๋ค. ์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์จ์ผ ํ๋๊ฐ?์ซ์๋ฅผ ํ ๋ฒ๋ง ์ํํ๋ฉด์ ์ ์ ํ ์ซ์๋ฅผ ์ ํํ๊ฑฐ๋ ์ ๊ฑฐํ๋ค. ์ซ์๊ฐ ๋ฐฑ๋ง ์๋ฆฌ์ฌ๋ 1,000,000๋ฒ์ ๋น๊ต๋ง ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํจ์จ์ด ์ข๋ค.๋ฌธ์ ์ ํต์ฌ = '์์์๋ถํฐ ๋ค๋ก ํฐ ์ซ์ ์ ์ง'์์๋ฆฌ๋ถํฐ ์์๋๋ก ์ซ์๋ฅผ ์ ํํ๋ฉฐ ํฐ ์ซ์๋ฅผ ์ ์งํ๋ ๋ฐฉ์์ผ๋ก ํ์ด์ผ ํ๋ค.๋๋ ์ด์คํฌ๋ฌธ์ผ๋ก ํ์๋๋ฐ ๋ค๋ฅธ ๋ถ๋ค์ด ํ์ดํ ๊ฑธ ๋ณด๋ ์คํ์ ์ฌ์ฉํด ๋..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์ ์กฐ์ด์คํฑ์ ์ ์์ผ๋ก ์ด๋ํ๋ ์ข์ฐ ์ด๋ ํ์(move) ์กฐ์ด์คํฑ ์ข์ฐ๋ก ์ด๋ํ๋ฉด์ ์ํ๋ฒณ ๋ณ๊ฒฝ๋ฅผ ์ํด ์ํ ์ด๋ ํ๋ ํ์(answer) ๋ ๊ฐ๋ฅผ answer์ ๋์ ํ๋ฉด์ ๋ํด์ค์ผ ํ๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๋๋ ๊ฒ์ ๋จ๋ฐฉํฅ์ด ์๋์ ์์ชฝ(์ข,์ฐ)๋ก ์กฐ์ด์คํฑ์ด ์์ง์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋น ๋ฅธ ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ์ด ๋ ์ฐ์๋ AAA์ ๊ฐ์๋ฅผ ๊ณ์ฐ ํด ์ฃผ์ด์ผ ํ๋ค. โ
์ํ๋ฒณ ๋ณ๊ฒฝ ํ์ฌ ์ธ๋ฑ์ค์์ A๋ฅผ ๋นผ์ค ๊ฐ vs Z๋ถํฐ ์์ํด์ ํ์ฌ ์ธ๋ฑ์ค๋ฅผ ๋นผ์ค ๊ฐ + 1๋ ๊ฐ๋ฅผ ๋น๊ตํด์ ๋ ์์ ๊ฐ์ ์ ํํด ์ค๋ค.์ ์๋ ์คํฑ์ ์ ๋ฐฉํฅโผ A๋ถํฐ ์์ฐจ์ ์ผ๋ก Z๋ก ๋ด๋ ค๊ฐ๋ฉด์ ๋ฐ๊พธ๋ ๊ฑฐ๊ณ ํ์๋ ์คํฑ์ ๋จผ์ ์ญ๋ฐฉํฅโฒ์ผ๋ก 1์นธ ๋๋ ค์ Z๋ฅผ ๋ง๋ ๋ค์์ ๋ฐ๋๋ก ํด๋น ์ํ๋ฒณ์ ์ฐพ์๊ฐ..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์๋ฌธ์ ์์ ์ฃผ์ด์ง ๊ฒn : ์ ์ฒด ํ์์ ์lost : ์ฒด์ก๋ณต ๋๋๋นํ ํ์๋ค์ ๋ฒํธ๋ค (๋ฐฐ์ด) reserve : ์ฌ๋ฒ ๊ฐ์ ธ์จ ํ์ ๋ฒํธ๋ค (๋ฐฐ์ด)์ฒด์ก๋ณต์ ์,๋ค ๋ฒํธ ํ์ ์๋ง ๋น๋ ค์ค ์ ์์.๋๋ ๋นํ ํ์๋ค์ ์ฌ๋ถ์ด ์์ด์ ์ฒด์ก๋ณต ๋น๋ ค์ค ์ ์์.1. `lost`์ `reserve` ๋ฐฐ์ด ์ ๋ ฌ 2. ์ฒด์ก์์
์ ์ฐธ์ฌํ ์ ์๋ ํ์์ ์ = ์ฒด์ก๋ณต์ด ์๊ฑฐ๋ ๋น๋ฆด ์ ์๋ ํ์๋ค์ ์ `์ฒด์ก๋ณต์ ๋๋ ๋นํ์ง ์์ ํ์์ ์` + `๋๋๋นํ์ง๋ง ์๋น๋ก ๋ค๊ณ ์จ ํ์์ ์` + `๋๋๋นํ์ง๋ง ์ฒด์ก๋ณต์ ๋น๋ฆด ์ ์๋ ํ์์ ์`์ด ๋ชจ๋ ํ์๋ค์ ์๋ฅผ ๋์ ํด์ answer ๋ณ์์ ๋ด์ ์ค๋ค. โ
์ฒด์ก๋ณต์ ๋๋ ๋นํ์ง ์์ ํ์์ ์= ์ ์ฒด ํ์์ ์ - ์ฒด์ก๋ณต์ ๋๋๋นํ ํ..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์ dfs(๊น์ด ์ฐ์ ํ์)์ผ๋ก A,E,I,O,U๋ก ์กฐํฉํด์ ๋ง๋ค ์ ์๋ ๋ชจ๋ ๋จ์ด๋ฅผ ๋ฆฌ์คํธ์ ๋ฃ์ด ์ค๋ค.๊ทธ๋ฆฌ๊ณ list์ ์ฌ์ด์ฆ๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๋ฉด์ word๋ ์ผ์นํ๋ ๋จ์ด๊ฐ ๋ค์ด ์๋ ์นธ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ค. โญ 3. ์ ๋ต์ฝ๋import java.util.*;class Solution { static List list; static String [] words = {"A", "E", "I", "O", "U"}; public int solution(String word) { int answer = 0; list = new ArrayList(); dfs("", 0); ..