๋ฐฑ์ค€: 2493 ํƒ‘

๋ฌธ์ œ 2493๋ฒˆ: ํƒ‘ ์ฒซ์งธ ์ค„์— ํƒ‘์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1 ์ด์ƒ 500,000 ์ดํ•˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” N๊ฐœ์˜ ํƒ‘๋“ค์˜ ๋†’์ด๊ฐ€ ์ง์„ ์ƒ์— ๋†“์ธ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์˜ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ํƒ‘๋“ค์˜ ๋†’์ด๋Š” 1 www.acmicpc.net ๋ฌธ์ œ ํ’€์ด ์ขŒ์ธก์— ์žˆ๋Š” ํƒ‘์ด, ์šฐ์ธก์˜ ํƒ‘ ๋ณด๋‹ค ๋†’์ด๊ฐ€ ๋†’์€ ๊ฒฝ์šฐ์— ์‹ ํ˜ธ๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ์—๋Š” ์ž…๋ ฅ์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ›๊ณ  ๋’ค์ง‘์–ด์„œ ์ƒ๊ฐํ•ด์•ผ ํ• ๊นŒ ๊ณ ๋ฏผํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฐ ํƒ‘์˜ ์ธ๋ฑ์Šค, ๋†’์ด๋ฅผ `stack`์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ์œ„ ๋ฌธ์ œ๋ฅผ ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. `stack`์— ํƒ‘์„ ์ˆœ์„œ๋Œ€๋กœ ์‚ฝ์ž…ํ•œ๋‹ค. pop์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ํ˜„์žฌ ํƒ‘์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ”๋กœ ์ขŒ์ธก์˜ ํƒ‘๋ถ€ํ„ฐ ๋น„๊ต๋ฅผ ์‹œ์ž‘ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ ํƒ€์›Œ์™€ ๋น„๊ตํ•˜์—ฌ `stack`์•ˆ์˜ ํƒ€์›Œ๋“ค(์ขŒ์ธก์˜ ํƒ€์›Œ..

๋ฐฑ์ค€: 1966 ํ”„๋ฆฐํ„ฐ

๋ฌธ์ œ 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ ์—ฌ๋Ÿฌ๋ถ„๋„ ์•Œ๋‹ค์‹œํ”ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋ฆฐํ„ฐ ๊ธฐ๊ธฐ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ธ์‡„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ธ์‡„ ๋ช…๋ น์„ ๋ฐ›์€ ‘์ˆœ์„œ๋Œ€๋กœ’, ์ฆ‰ ๋จผ์ € ์š”์ฒญ๋œ ๊ฒƒ์„ ๋จผ์ € ์ธ์‡„ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์Œ“์ธ๋‹ค๋ฉด Queue ์ž๋ฃŒ๊ตฌ์กฐ์— www.acmicpc.net ๋ฌธ์ œ ํ’€์ด ํ”„๋ฆฐํ„ฐ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ์„œ ๋Œ€๊ธฐ์—ด์— ๋ฌธ์„œ๋“ค์ด ์žˆ๋‹ค. ์ด๋•Œ, ๊ฐ ๋ฌธ์„œ๋“ค์€ `์šฐ์„ ์ˆœ์œ„`๋ฅผ ๊ฐ€์ง„๋‹ค. ํ(๋ฌธ์„œ ๋Œ€๊ธฐ์—ด)์—์„œ ๋ฌธ์„œ๋ฅผ ์ธ์‡„ํ•˜๊ณ ์ž ํ•  ๋•Œ ํ์— ์žˆ๋Š” ๋ฌธ์„œ๋“ค ์ค‘ ์šฐ์„ ์ˆ˜์œ„๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ๋†’์€ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด, ํ”„๋ฆฐํŠธํ•˜์ง€ ์•Š๊ณ  ํ์˜ ๋งจ ๋’ค๋กœ ๋ณด๋‚ธ๋‹ค. ์ด๋Š” ์•ž์„œ ๋‹ค๋ฃฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ํ”„๋ฆฐํ„ฐ์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ‘๊ทผํ•˜์˜€๋‹ค. ์ตœ์ดˆ์˜ ๋ฌธ์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ธ๋ฑ์Šค๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด `enumerate`๋ฅผ ํ™œ์šฉํ•œ๋‹ค. `deque`๋ฅผ ํ™œ์šฉํ•˜์—ฌ, ์ธ์‡„ ๊ฐ€๋Šฅ..

๋ฐฑ์ค€: 10422 ๊ด„ํ˜ธ

๋ฌธ์ œ 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์œผ๋กœ ํ‘œํ˜„

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

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