ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ๋ณด์„ ์‡ผํ•‘

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ณด์„ ์‡ผํ•‘ ["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์œผ๋กœ ํ‘œํ˜„

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 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:..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ์•ผ๊ทผ ์ง€์ˆ˜

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์•ผ๊ทผ ์ง€์ˆ˜ ํšŒ์‚ฌ์› Demi๋Š” ๊ฐ€๋”์€ ์•ผ๊ทผ์„ ํ•˜๋Š”๋ฐ์š”, ์•ผ๊ทผ์„ ํ•˜๋ฉด ์•ผ๊ทผ ํ”ผ๋กœ๋„๊ฐ€ ์Œ“์ž…๋‹ˆ๋‹ค. ์•ผ๊ทผ ํ”ผ๋กœ๋„๋Š” ์•ผ๊ทผ์„ ์‹œ์ž‘ํ•œ ์‹œ์ ์—์„œ ๋‚จ์€ ์ผ์˜ ์ž‘์—…๋Ÿ‰์„ ์ œ๊ณฑํ•˜์—ฌ ๋”ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. Demi๋Š” N์‹œ๊ฐ„ ๋™์•ˆ ์•ผ๊ทผ ํ”ผ๋กœ๋„ programmers.co.kr ๋ฌธ์ œ ํ’€์ด ๋‚จ์€ ์ผ์˜ ์ž‘์—…๋Ÿ‰์ด ์žˆ์„ ๋•Œ, ์•ผ๊ทผ ์ง€์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ผ์˜ ์ž‘์—…๋Ÿ‰์ด ์žˆ๊ณ , ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ์žˆ๋‹ค๋ฉด ์ž‘์—…๋Ÿ‰์ด ๊ฐ€์žฅ ํฐ ์ž‘์—…๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์•ผ๊ทผ ์ง€์ˆ˜๋Š” `์ž‘์—…๋Ÿ‰์˜ ์ œ๊ณฑ`์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” `Python`์˜ ๊ฒฝ์šฐ `heapq`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์–ด์•ผ ํ•œ๋‹ค. `heapq`๋Š” ์ตœ์†Œ ํž™์ด๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ ํž™์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์Œ์ˆ˜ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. (์ด๋Š” works๊ฐ€ 1 ์ด์ƒ ์ด๊ธฐ์— ๊ฐ€๋Šฅํ•˜..

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ์ˆซ์ž ๊ฒŒ์ž„

๋ฌธ์ œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ˆซ์ž ๊ฒŒ์ž„ xx ํšŒ์‚ฌ์˜ 2xN๋ช…์˜ ์‚ฌ์›๋“ค์€ N๋ช…์”ฉ ๋‘ ํŒ€์œผ๋กœ ๋‚˜๋ˆ  ์ˆซ์ž ๊ฒŒ์ž„์„ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ํŒ€์„ ๊ฐ๊ฐ AํŒ€๊ณผ BํŒ€์ด๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ˆซ์ž ๊ฒŒ์ž„์˜ ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋ชจ๋“  ์‚ฌ์›์ด ๋ฌด์ž‘์œ„๋กœ programmers.co.kr ๋ฌธ์ œ ํ’€์ด A, B ํŒ€์ด ์žˆ์„ ๋•Œ, ์ž„์˜์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. B ํŒ€์ด ์ตœ๋Œ€ํ•œ ์ด๊ธธ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ์ตœ๋Œ€ ์Šน์ ์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. A, B๋ฅผ ์ •๋ ฌํ•˜๊ณ , ์ตœ๋Œ€ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ์‰ฝ๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ `AํŒ€์˜ ์ตœ์†Ÿ๊ฐ’`์ด `BํŒ€์˜ ์ตœ๋Œ€๊ฐ’` ๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๋ณ„๋„์˜ ๋ฐ˜๋ณต๋ฌธ์„ ์ง„ํ–‰ํ•  ํ•„์š” ์—†์ด ๋ฐ”๋กœ 0์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. (์ด๊ธธ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.) ์ด์™ธ์˜ ๊ฒฝ์šฐ `A์˜ ์ตœ๋Œ€๊ฐ’`๊ณผ `B์˜ ์ตœ๋Œ€๊ฐ’`์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋œ๋‹ค. ์ฝ”๋“œ..

๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€