๋ฌธ์ 2493๋ฒ: ํ ์ฒซ์งธ ์ค์ ํ์ ์๋ฅผ ๋ํ๋ด๋ ์ ์ N์ด ์ฃผ์ด์ง๋ค. N์ 1 ์ด์ 500,000 ์ดํ์ด๋ค. ๋์งธ ์ค์๋ N๊ฐ์ ํ๋ค์ ๋์ด๊ฐ ์ง์ ์์ ๋์ธ ์์๋๋ก ํ๋์ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ํ๋ค์ ๋์ด๋ 1 www.acmicpc.net ๋ฌธ์ ํ์ด ์ข์ธก์ ์๋ ํ์ด, ์ฐ์ธก์ ํ ๋ณด๋ค ๋์ด๊ฐ ๋์ ๊ฒฝ์ฐ์ ์ ํธ๋ฅผ ์์ ํ ์ ์๋ค. ์ด๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ์ฒ์์๋ ์ ๋ ฅ์ ๋ฆฌ์คํธ๋ก ๋ฐ๊ณ ๋ค์ง์ด์ ์๊ฐํด์ผ ํ ๊น ๊ณ ๋ฏผํ๋ค. ํ์ง๋ง, ๊ฐ ํ์ ์ธ๋ฑ์ค, ๋์ด๋ฅผ `stack`์ผ๋ก ์ฒ๋ฆฌํ๋ฉด ์ ๋ฌธ์ ๋ฅผ ๊ฐ๋จํ ํด๊ฒฐํ ์ ์๋ค. `stack`์ ํ์ ์์๋๋ก ์ฝ์ ํ๋ค. pop์ ํ๊ฒ ๋๋ฉด, ํ์ฌ ํ์ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ก ์ข์ธก์ ํ๋ถํฐ ๋น๊ต๋ฅผ ์์ ํ ์ ์๋ค. ํ์ฌ ํ์์ ๋น๊ตํ์ฌ `stack`์์ ํ์๋ค(์ข์ธก์ ํ์..
๋ฌธ์ 1966๋ฒ: ํ๋ฆฐํฐ ํ ์ฌ๋ฌ๋ถ๋ ์๋ค์ํผ ์ฌ๋ฌ๋ถ์ ํ๋ฆฐํฐ ๊ธฐ๊ธฐ๋ ์ฌ๋ฌ๋ถ์ด ์ธ์ํ๊ณ ์ ํ๋ ๋ฌธ์๋ฅผ ์ธ์ ๋ช ๋ น์ ๋ฐ์ ‘์์๋๋ก’, ์ฆ ๋จผ์ ์์ฒญ๋ ๊ฒ์ ๋จผ์ ์ธ์ํ๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ์์ธ๋ค๋ฉด Queue ์๋ฃ๊ตฌ์กฐ์ www.acmicpc.net ๋ฌธ์ ํ์ด ํ๋ฆฐํฐ๋ฅผ ํ๊ธฐ ์ํ ๋ฌธ์ ๋๊ธฐ์ด์ ๋ฌธ์๋ค์ด ์๋ค. ์ด๋, ๊ฐ ๋ฌธ์๋ค์ `์ฐ์ ์์`๋ฅผ ๊ฐ์ง๋ค. ํ(๋ฌธ์ ๋๊ธฐ์ด)์์ ๋ฌธ์๋ฅผ ์ธ์ํ๊ณ ์ ํ ๋ ํ์ ์๋ ๋ฌธ์๋ค ์ค ์ฐ์ ์์๊ฐ ํ๋๋ผ๋ ๋์ ๊ฒ์ด ์๋ค๋ฉด, ํ๋ฆฐํธํ์ง ์๊ณ ํ์ ๋งจ ๋ค๋ก ๋ณด๋ธ๋ค. ์ด๋ ์์ ๋ค๋ฃฌ ํ๋ก๊ทธ๋๋จธ์ค: ํ๋ฆฐํฐ์ ์ ์ฌํ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ด ์ ๊ทผํ์๋ค. ์ต์ด์ ๋ฌธ์๊ฐ ์์นํ ์ธ๋ฑ์ค๋ฅผ ์๊ธฐ ์ํด `enumerate`๋ฅผ ํ์ฉํ๋ค. `deque`๋ฅผ ํ์ฉํ์ฌ, ์ธ์ ๊ฐ๋ฅ..
๋ฌธ์ 10422๋ฒ: ๊ดํธ ‘(‘, ‘)’ ๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๊ดํธ ๋ฌธ์์ด์ด๋ผ ํ๋ค. ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋๋ค. ()๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ค. S๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, (S)๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ www.acmicpc.net ๋ฌธ์ ํ์ด ๊ดํธ์ ๋ฌธ์์ด์ด ์ฃผ์ด์ง ๋, ์ฌ๋ฐ๋ฅธ ๊ดํธ์ธ์ง ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ด ๋ฌธ์ ๋ `DP`๋ก๋ ํ ์ ์์ง๋ง, ์นดํ๋ ์๋ก๋ ํ ์ ์๋ค. ์นดํ๋ ์๋ ์ด์งํธ๋ฆฌ์ ์๋ฅผ ์ ๋ ์ฌ์ฉํ๋ ์์ด์ด๋ค. ์นดํ๋ ์๋ฅผ ํ์ด์ฌ ์ฝ๋๋ก ๋ํ๋ด๋ฉด `factorial(2 * num) // (factorial(num) * factorial(num + 1))`์ด๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์ฝ๋ from math import factorial from sys impo..
๋ฌธ์ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋ณด์ ์ผํ ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr ๋ฌธ์ ํ์ด ์ง์ด๋ ๋ณด์๋ค ์ค ๋ชจ๋ ์ข ๋ฅ์ ๋ณด์์ ์ ์ด๋ 1๊ฐ ์ด์ ํฌํจํ๋ ๊ฐ์ฅ ์งง์ ๊ตฌ๊ฐ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์์์๋ถํฐ ์์ฐจ์ ์ผ๋ก ํ์์ ํ๊ฒ ๋๋ฉด ํจ์จ์ฑ์ ํต๊ณผํ ์ ์๋ค. ๊ณ ๋ฏผ์ ํ๋ค๊ฐ ์๋ฃจ์ ์ ์ฐธ์กฐํ์๋๋ฐ, `ํฌํฌ์ธํฐ`๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํ๋ ๋ฌธ์ ์๋ค. ๊ตฌํํ๋ ๋ฐฉ์์ ์๋ฃจ์ ๊ณผ ๊ฐ์ด ๊ตฌํํ๋ฉด, ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ํ์ `ํฌํฌ์ธํฐ`๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ๋ฅผ ๋ค๋ฃจ์ด๋ณด์ง ์์ ํ์ด๋ฅผ ๋ณด๊ณ ๋์์ผ ์ดํด๋ฅผ ํ ์ ์์๋ค.๐ค ์ฝ๋ def solution(gems): start, end = 0, 0 gem_num = l..
๋ฌธ์ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - N์ผ๋ก ํํ programmers.co.kr ๋ฌธ์ ํ์ด ํน์ ํ ์ซ์ `N`์ผ๋ก ์ฌ์น์ฐ์ฐ์ ์ฌ์ฉํ์ฌ `number`๋ฅผ ํํํ ์ ์๋์ง ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ด๋ `N`์ ์ฌ์ฉํ ํ์๊ฐ ๊ฐ์ฅ ์์ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์์ผ ํ๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ `DP`๋ฅผ ํตํด์๋ ํ ์ ์์ง๋ง, `DFS`๋ฅผ ํตํด ํ๋๋ผ๋ ๊ฐ์ ํ ํต๊ณผํ ์ ์๋ค. `DFS`๋ฅผ ํตํด ์ฌ์ฉํ `N`์ ์๋ฅผ ์นด์ดํธํ๊ณ , ์นด์ดํธ๋ ์๊ฐ 8๋ณด๋ค ํฌ๋ค๋ฉด ๋ ์ด์ ๊ฐ์ง๋ฅผ ๋ป์ ํ์ ์์ด ์ข ๋ฃํ๋ฉด ๋๋ค. ๋ํ ๋ง์กฑํ๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์ ๊ฒฝ์ฐ, ํ์ฌ ์ฐพ์ ์นด์ดํธ๋ณด๋ค `N`์ ๋ ๋ง์ด ์ฌ์ฉํ๋ค๋ฉด ๊ฐ์ง๋ฅผ ๋ป์ง ์์ผ๋ฉด ๋ณด๋ค ์๊ฐ์ ๋จ์ถ์ํฌ ์ ์๋ค. ์ฝ๋ from math import inf answer = inf def dfs(n, cnt, num,..
๋ฌธ์ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ด์ค์ฐ์ ์์ํ programmers.co.kr ๋ฌธ์ ํ์ด ์ฃผ์ด์ง ์ฐ์ฐ ์ข ๋ฅ์ ๋ฐ๋ผ ํ์ ์ฐ์ฐ์ ์ฝ์ ํ๊ณ ์ญ์ ํ๋ ๊ณผ์ ์ ์งํํ๋ค. ์ฐ์ฐ์ ์ข ๋ฅ์ ๋ฐ๋ผ ๋์ํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค. ๋ช ๋ น์ด์ ๋ฐ๋ผ ํ์ ์ซ์๋ฅผ ์ฝ์ ํ๊ณ , `D 1`์ธ ๊ฒฝ์ฐ ํ์์ ์ต๋๊ฐ์ ์ญ์ ํ๋ค. ์ด์ ๋ฌ๋ฆฌ `D -1`์ธ ๊ฒฝ์ฐ ํ์์ ์ต์๊ฐ์ ์ญ์ ํ๋ค. ์ด๋ ๋ณ๋๋ก `heapq`๋ฅผ ์ฌ์ฉํ์ง ์๋๋ผ๋ `list`๋ฅผ ํตํด ๊ฐ๋จํ ๊ตฌํํ ์ ์๋ค. ์ฝ๋ def solution(operations): answer = [] for cur_op in operations: op, num = cur_op.split(' ') if op == 'I': answer.append(int(num)) elif answer: if num =..
๋ฌธ์ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ง๊ฒ๋ค๋ฆฌ ์ถ๋ฐ์ง์ ๋ถํฐ distance๋งํผ ๋จ์ด์ง ๊ณณ์ ๋์ฐฉ์ง์ ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ์ฌ์ด์๋ ๋ฐ์๋ค์ด ๋์ฌ์์ต๋๋ค. ๋ฐ์ ์ค ๋ช ๊ฐ๋ฅผ ์ ๊ฑฐํ๋ ค๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋์ฐฉ์ง์ ์ด 25๋งํผ ๋จ์ด์ ธ ์๊ณ , ๋ฐ์๊ฐ programmers.co.kr ๋ฌธ์ ํ์ด ์ถ๋ฐ์ง์ ๋ถํฐ ๊ฑฐ๋ฆฌ๋งํผ ๋จ์ด์ง ๊ณณ์ ๋์ฐฉ์ง์ ์ด ์๋ค. ์ด๋ ๊ทธ ์ฌ์ด์ ์๋ ๋ฐ์๋ค ์ค ๋ช ๊ฐ๋ฅผ ์ ๊ฑฐํ๋ ค๊ณ ํ๋ค. ํน์ ๋ฐ์๋ฅผ `N`๊ฐ๋งํผ ์ ๊ฑฐํ ๋ ๊ฑฐ๋ฆฌ์ ์ต์๊ฐ์ด ์ต๋๊ฐ ๋๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ์ด ๋ฌธ์ ๋ ๋ฌธ์ ์ ๋ถ๋ฅ์ ๊ฐ์ด `์ด๋ถ ํ์`์ผ๋ก ํด๊ฒฐํ ์ ์๋ค. `์ด๋ถ ํ์`์ ํตํด ์ต์๊ฐ ๊ธฐ์ค์ผ๋ก, ๋น ์ง ๋์ ๊ฐ์๋ฅผ ์นด์ดํธํ ํ ๊ฑฐ๋ฆฌ์ ์ต์๊ฐ์ด ์ต๋๊ฐ ๋๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ค. ์ฝ๋ from math import inf def ..
๋ฌธ์ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ฐ์ฅ ๊ธด ํฐ๋ฆฐ๋๋กฌ ์๋ค๋ฅผ ๋ค์ง์ด๋ ๋๊ฐ์ ๋ฌธ์์ด์ ํฐ๋ฆฐ๋๋กฌ(palindrome)์ด๋ผ๊ณ ํฉ๋๋ค. ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง ๋, s์ ๋ถ๋ถ๋ฌธ์์ด(Substring)์ค ๊ฐ์ฅ ๊ธด ํฐ๋ฆฐ๋๋กฌ์ ๊ธธ์ด๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์๋ฅผ๋ค programmers.co.kr ๋ฌธ์ ํ์ด ๋ฌธ์์ด์ด ์ฃผ์ด์ง ๋, ๋ฌธ์์ด์ ๋ถ๋ถ ๋ฌธ์์ด ์ค ๊ฐ์ฅ ๊ธด ํฐ๋ฆฐ๋๋กฌ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ `2์ค ๋ฐ๋ณต๋ฌธ`์ ํตํด ๋ถ๋ถ ๋ฌธ์์ด์ ์์ ์์น์ ๋ ์์น๋ฅผ ์ค์ ํ ํฐ๋ฆฐ๋๋กฌ์ธ์ง ํ์ธํ๋ฉด ๋๋ค. ์ฝ๋ def solution(s): answer = -1 for i in range(len(s)): for j in range(i + 1, len(s) + 1): cur_string = s[i:..