๋ฐฑ์ค€: 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..

๋ฐฑ์ค€: 14425 ๋ฌธ์ž์—ด ์ง‘ํ•ฉ

๋ฌธ์ œ 14425๋ฒˆ: ๋ฌธ์ž์—ด ์ง‘ํ•ฉ ์ฒซ์งธ ์ค„์— ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜ N๊ณผ M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ์ง‘ํ•ฉ S์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด๋“ค์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ๊ฒ€์‚ฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ž์—ด๋“ค์ด ์ฃผ์–ด www.acmicpc.net ๋ฌธ์ œ ํ’€์ด N๊ฐœ์— ๋ฌธ์ž์—ด๋กœ ์ด๋ฃจ์–ด์ง„ ์ง‘ํ•ฉ S๊ฐ€ ์žˆ์„ ๋•Œ, M๊ฐœ์— ๋ฌธ์ž์—ด ์ค‘ ์ง‘ํ•ฉ S์— ํฌํ•จ๋˜๋Š” ๋ฌธ์ž๊ฐ€ ์ด ๋ช‡ ๊ฐœ์ธ์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” `๋”•์…”๋„ˆ๋ฆฌ`์™€ `in`์„ ํ™œ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. M๊ฐœ์˜ ๋ฌธ์ž์—ด ์ค‘, N์— ํฌํ•จ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” `if pattern in strings`์™€ ๊ฐ™์ด ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. ํŒŒ์ด์ฌ์˜ `in` ์—ฐ์‚ฐ์€ ๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ `O(N)`์˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์ง€๋งŒ ๋”•์…”๋„ˆ๋ฆฌ์˜ ๊ฒฝ์šฐ `O(1)`์˜..

๋ฐฑ์ค€: 1305 ๊ด‘๊ณ 

๋ฌธ์ œ 1305๋ฒˆ: ๊ด‘๊ณ  ์ฒซ์งธ ์ค„์— ๊ด‘๊ณ ํŒ์˜ ํฌ๊ธฐ L์ด ์ฃผ์–ด์ง€๊ณ , ๋‘˜์งธ ์ค„์— ํ˜„์žฌ ๊ด‘๊ณ ํŒ์— ๋ณด์ด๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. L์€ ๋ฐฑ๋งŒ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ๋ฌธ์ œ ํ’€์ด ์ „๊ด‘ํŒ์— N๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ๊ด‘๊ณ ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค. ์ด๋•Œ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ฌธ์ž์—ด์€ ํ•œ ์นธ์”ฉ ์˜†์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ์–ด๋Š ์ˆœ๊ฐ„ ๊ด‘๊ณ ํŒ์„ ๋ณผ ๋•Œ, ์“ฐ์—ฌ ์žˆ๋Š” ๋ฌธ์ž๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค๋ฉด ๊ฐ€๋Šฅํ•œ ๊ด‘๊ณ ์˜ ๊ธธ์ด ์ค‘ ๊ฐ€์žฅ ์งง์€ ๊ฒƒ์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋Š” `KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜`์—์„œ ์ ‘๋ฏธ์‚ฌ์™€ ์ ‘๋‘์‚ฌ๊ฐ€ ๋˜๋Š” ๋ฌธ์ž์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋งŒ์•ฝ `KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜`์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์—†๋‹ค. ์ฝ”๋“œ def make_table(patten): table = [0] * l j = 0 for i ..

๋ฐฑ์ค€: 1701 Cubeditor

๋ฌธ์ œ 1701๋ฒˆ: Cubeditor Cubelover๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด Whitespace์˜ ์ฝ”๋”ฉ์„ ๋„์™€์ฃผ๋Š” ์–ธ์–ด์ธ Cubelang์„ ๋งŒ๋“ค์—ˆ๋‹ค. Cubelang์„ ์ด์šฉํ•ด ์ฝ”๋”ฉ์„ ํ•˜๋‹ค๋ณด๋‹ˆ, ์ ์  ์ด ์–ธ์–ด์— ๋งž๋Š” ์ƒˆ๋กœ์šด ์—๋””ํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์˜ค๋žœ ์‹œ๊ฐ„ ๊ณ ์ƒํ•œ www.acmicpc.net ๋ฌธ์ œ ํ’€์ด ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์˜ ๋‘ ๋ฒˆ ์ด์ƒ ๋‚˜์˜ค๋Š” ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ธธ์ด๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋Š” ์•ž์„œ ๋‹ค๋ฃฌ 16916 ๋ถ€๋ถ„ ๋ฌธ์ž์—ด, 1786 ์ฐพ๊ธฐ์—์„œ ๋ฌธ์ž์—ด ์ผ์น˜์— ๋”ฐ๋ผ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๋Š” `make_table`์„ ํ™œ์šฉํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฝ”๋“œ def make_table(patten): length = len(patten) table = [0] * len(patten) j = 0 for i in range(1..

๋ฐฑ์ค€: 1786 ์ฐพ๊ธฐ

๋ฌธ์ œ 1786๋ฒˆ: ์ฐพ๊ธฐ ์ฒซ์งธ ์ค„์—, T ์ค‘๊ฐ„์— P๊ฐ€ ๋ช‡ ๋ฒˆ ๋‚˜ํƒ€๋‚˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” P๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์œ„์น˜๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ปจ๋Œ€, T์˜ i๏ฝži+m-1๋ฒˆ ๋ฌธ์ž์™€ P์˜ 1๏ฝžm www.acmicpc.net ๋ฌธ์ œ ํ’€์ด ๋ฌธ์ž์—ด๊ณผ ํŒจํ„ด์ด ์ฃผ์–ด์ง€๋ฉด, ์ด๋ฅผ ํ†ตํ•ด ๋ช‡ ๊ฐœ๊ฐ€ ์ผ์น˜ํ•˜๊ณ  ์–ด๋Š ์œ„์น˜์— ์ผ์น˜ํ•˜๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์•ž์„œ ๋‹ค๋ฃฌ 16916 ๋ถ€๋ถ„ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์ด `KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜`์„ ์ดํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์•ž์„œ ๋‹ค๋ฃฌ ๋ฌธ์ œ์™€ ๋‹ค๋ฅธ ์ ์ด ์žˆ๋‹ค๋ฉด ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ”๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ , ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชจ๋“  ํƒ์ƒ‰์ด ๋๋‚œ ํ›„์— ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค. ์ฝ”๋“œ def make_table(): length = len(p) table =..

๋ฐฑ์ค€: 1717 ์ง‘ํ•ฉ์˜ ํ‘œํ˜„

๋ฌธ์ œ 1717๋ฒˆ: ์ง‘ํ•ฉ์˜ ํ‘œํ˜„ ์ฒซ์งธ ์ค„์— n(1≤n≤1,000,000), m(1≤m≤100,000)์ด ์ฃผ์–ด์ง„๋‹ค. m์€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์—ฐ์‚ฐ์˜ ๊ฐœ์ˆ˜์ด๋‹ค. ๋‹ค์Œ m๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ๊ฐ์˜ ์—ฐ์‚ฐ์ด ์ฃผ์–ด์ง„๋‹ค. ํ•ฉ์ง‘ํ•ฉ์€ 0 a b์˜ ํ˜•ํƒœ๋กœ ์ž…๋ ฅ์ด ์ฃผ์–ด์ง„๋‹ค. ์ด๋Š” a๊ฐ€ ๏ฟฝ๏ฟฝ www.acmicpc.net ๋ฌธ์ œ ํ’€์ด 0๋ถ€ํ„ฐ N๊นŒ์ง€ ์ง‘ํ•ฉ์„ ์ด๋ฃฐ ๋•Œ, ํ•ฉ์ง‘ํ•ฉ ์—ฐ์‚ฐ๊ณผ ๋‘ ์›์†Œ๊ฐ€ ๊ฐ™์€ ์ง‘ํ•ฉ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋Š” `Union-Find`๋ฅผ ์ดํ•ดํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ํ•ด๋‹น ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ from sys import stdin def find(target): if target == parent[target]: return target re..

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