๐๋ฌธ์ ํ์ด
[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] ํ๋ก๊ทธ๋๋จธ์ค N์ผ๋ก ํํ | DP
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/42895 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - 8๋ฒ ์ด์ ์ฐ์ฐ์ ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ธ์งํ๊ณ ๊ฐ ์ธ๋ฑ์ค ํฌ๊ธฐ ๋งํผ์ ์ฐ์ฐ ์ํ์ ๊ฒฐ๊ณผ ์๋ค์ ์ ์ฅํ๋ ๋ฐฐ์ด ์ ์ธ - dp[i]์๋ i๋ i+1๋ฒ ์ฐ์ฐ์ ํํ ๊ฐ๋ฅํ ์๋ค์ด ๋ค์ด๊ฐ๋ค. - N์ด 5๋ผ๋ฉด 55๋ ์ฐ์ฐ 2๋ฒ์ ์๋ฏธํ๋ฏ๋ก ํด๋นํ๋ ๊ฐ์ ๋ฏธ๋ฆฌ ๋ฃ์ด ๋๋ค. - 4์ค for๋ฌธ 1) ์ฐ์ฐ ํ์ i 2) ํด๋นํ๋ ์ฐ์ฐ ํ์ ์ดํ ..
[Python] ๋ฐฑ์ค 1463 1๋ก ๋ง๋ค๊ธฐ | DP
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/1463 1463๋ฒ: 1๋ก ๋ง๋ค๊ธฐ ์ฒซ์งธ ์ค์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 106๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์ N์ด ์ฃผ์ด์ง๋ค. www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ์ ํ์ ์ธ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ์ด๋ค. - ๊ฐ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ ํ์ํ ์ต์ ์ฐ์ฐ์ ์ ์ฅํ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฅ ๋ฐ์ N ํฌ๊ธฐ๋ก ์์ฑ. - ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ๋ฐํ ์ (BottomUp) : ๋ฐ๋ณต๋ฌธ ํ๋ค์ด(TopDown) : ์ฌ๊ท ๋ฐํ ์ ๋ฐฉ์์ด ์คํ ํฌ๊ธฐ ์ ํ์ผ๋ก๋ถํฐ ์์ ๋ก์์ผ๋ก, ์ฒ์ ์ฐ์ฐ์ ์ ์ฅํ์ฌ ์ดํ ๋์ผํ ์ฐ์ฐ ๋ฐ์์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต ์ฐ์ฐ์ ํผํ ์ ์๋ค. - ์ต์ข ์ ์ผ๋ก 1์ ๋ง๋๋ ํ๋ก๊ทธ๋จ์ด๋ฏ๋ก 2๋ถํฐ ๊ตฌํ๋ ค๋ n๊น์ง ๊ฐ ์๋ฅผ ..
[JAVA] ํ๋ก๊ทธ๋๋จธ์ค ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ | HashMap | HashSet
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/92334 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํ์ด์ฌ์ฒ๋ผ ๋ฐฐ์ด์ ๋ค๋ฅธ ํ์ ์ ๋ฃ์ ์ ์๊ธฐ ๋๋ฌธ์ ํค๋งธ์ผ๋ Map ํด๋์ค์ value์ Set ํ์ ์ ๋ฃ์ - ๊ฐ ์ ๊ณ ์ด๋ ฅ์ ๋๋ฉฐ ์ ๊ณ ๋นํ ์ฌ๋์ด key๊ฐ, ์ ๊ณ ํ ์ฌ๋๋ค์ด value - ๊ฐ ์ ์ ๋ณ ์ ์ง ๋ฉ์ผ์ ์นด์ดํธ ํ๊ธฐ ์ํด LinkedHashMap์ ์ ์(๋จ์ HashMap์ผ๋ก ์์๋ฅผ ์ฅ๋ด๋ฐ์ ์ ์์) - ์ ๊ณ ๋ฐ์..
[JAVA] ํ๋ก๊ทธ๋๋จธ์ค ์์ ์ฐพ๊ธฐ | ์๋ผํ ์คํ ๋ค์ค์ฒด | ๊ณจ๋ ๋ฐํ์ ์ถ์ธก
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/12921 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - 2์ค for๋ฌธ์ ์ด์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ํด๊ฒฐ๊ฐ๋ฅํ ๋ฌธ์ ์ด์ง๋ง ํ์ต ๊ฒธ '์๋ผํ ์คํ ๋ค์ค์ ์ฒด' ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ ํ์ดํ๋ค. - ์์๋ฅผ ์ฐพ์ผ๋ฉด ํด๋น ์์ ๋ฐฐ์๋ ๋ชจ๋ ์์๊ฐ ์๋๋ค. - boolean ๋ฐฐ์ด์ n+2(0๊ณผ n ํฌํจ) ์ ์ธํ์ฌ ์์๋ฅผ ๋ง๋ ๋๋ง๋ค ๋ฐฐ์๋ฅผ true ์ฒ๋ฆฌ ํ๋ค. - ๋ฐฐ์ด์์ false์ ์ธ๋ฑ์ค๊ฐ ์์์ด๋ค. ํ์ด์ฌ์ผ..
[JAVA] ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ์๊ณ ์ฌ | ArrayList | Math
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=java ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ํ์๋ณ ํจํด์ ์ ์ฅํ ๋ฐฐ์ด ์ ์ - answer๋ฅผ ๋๋ฉด์ ํด๋นํ๋ ๋ฒํธ์ ํ์์ด ์์ฑํ ๋ต๊ณผ ๋น๊ตํด ๋ง์ผ๋ฉด ++ - Math์ .max ๋ฉ์๋ ์ฌ์ฉํ์ฌ ์ต๋๊ฐ ์ฐพ๊ธฐ - ์ต๋๊ฐ๊ณผ ์ผ์นํ๋ ํ์์ด ๋ช๋ช ์ธ์ง ์ ์ ์์ผ๋ฏ๋ก ์ผ์นํ๋ ๋ฒํธ๋ฅผ ArrayList.add ๋ฅผ ์ด์ฉํ์ฌ ์ฝ์ - ์ผ์น ํ์์ ์์ ๋์ผํ..
[JAVA] ํ๋ก๊ทธ๋๋จธ์ค ํฌ์ผ๋ชฌ | HashSet
๐คซํผ์ฃ๋ง ์๋ฐ๋ฅผ ์ด์ฌํ ๊ณต๋ถํ๋ ๊ธฐ์ต + ํ์ด์ฌ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์์ฒด์ ๋ํ ์ดํด๋ ํฅ์ ์ด ๋๊ฐ์ง ๋๋ถ์ Python์ด ์๋ JAVA๋ก ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด์ ํ์ค์ด ์๋๊ฐ์ด ์๋ ๊ฒ๊ฐ๋ค! ํ์ง๋ง JAVA๋ง์ ๋ฌธ๋ฒ(HashSet, HashMap, Stream, String, StringBuilder, Arrays, Map ...)๊ณผ ๋ฐฐ์ด์ด๋ ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ๋ฐฉ์์ด๋ ๋ถํ์ํ ์ ๋ ฅ( ์ธ๋ฏธ์ฝ๋ก (;), ๊ดํธ, ํ์ ์ ๋ ฅ ๋ฑ)์ ์๊ฐํ์ ๋ ํ์ด์ฌ์ด ์ฝ๋ฉํ ์ด์ค์์ ์ต๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ค.. ~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=java ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ..