๋ชฉ๋กAlgorithms (80)

๐ŸŒฑ → ๐ŸŒณ

[๋ฐฑ์ค€] 9012๋ฒˆ: ๊ด„ํ˜ธ python

https://www.acmicpc.net/problem/9012 9012๋ฒˆ: ๊ด„ํ˜ธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Parenthesis String, PS)์€ ๋‘ ๊ฐœ์˜ ๊ด„ํ˜ธ ๊ธฐํ˜ธ์ธ ‘(’ ์™€ ‘)’ ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. ๊ทธ ์ค‘์—์„œ ๊ด„ํ˜ธ์˜ ๋ชจ์–‘์ด ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด(Valid PS, VPS)์ด๋ผ๊ณ  www.acmicpc.net ์„ค๊ณ„ ๋ฐฉ๋ฒ• ๋‚˜์˜ ๋ฐฉ๋ฒ• ps๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ “(”๋ฉด stack์— ๋„ฃ๊ณ  “)”๋ฉด stack์—์„œ ๋นผ์ฃผ์—ˆ์Œ “)”์ธ๋ฐ stack์—์„œ ๋บ„ ๊ฒŒ ์—†์œผ๋ฉด vps๊ฐ€ ์•„๋‹Œ๊ฑฐ๊ณ , ps๋ฅผ ๋ชจ๋‘ ๋Œ๊ณ  ๋‚˜์„œ๋„ (๊ฐ€ ๋‚จ์•„์žˆ์–ด๋„ vps๊ฐ€ ์•„๋‹˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ• ๊ผญ stack์„ ์ด์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ sum = 0 ์ด๋ผ๊ณ  ์„ ์–ธ ํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ “(”๋ฉด sum +=1, “)” ์ด๋ฉด sum -=1 ์ด๋Ÿฐ ์‹์œผ..

Algorithms 2023. 1. 3. 11:41
Algorithm) Dynamic Programming

๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ( ๋™์  ๊ณ„ํš๋ฒ•) ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ ์‹œ๊ฐ„ ํšจ์œจ์„ฑ์„ ๋น„์•ฝ์ ์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ• ์ด๋ฏธ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ(์ž‘์€ ๋ฌธ์ œ)๋Š” ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ €์žฅํ•˜์—ฌ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋„๋ก ํ•จ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ตฌํ˜„์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹ ํƒ‘ ๋‹ค์šด(ํ•˜ํ–ฅ์‹) ๋ณดํ…€ ์—…(์ƒํ–ฅ์‹) ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ถ„์•ผ์—์„œ ๋™์ (dynamic)์ด๋ž€? ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ๋™์  ํ• ๋‹น(dynamic allocation)์€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋„์ค‘์— ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ธฐ๋ฒ•์„ ์˜๋ฏธ ๋ฐ˜๋ฉด ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ‘๋‹ค์ด๋‚˜๋ฏน’์€ ๋ณ„ ์˜๋ฏธ ์—†์ด ์‚ฌ์šฉ๋œ ๋‹จ์–ด ๋‹ค์ด๋‚˜๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์กฐ๊ฑด ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ(Optimal Substructure) ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž‘์€ ๋ฌธ์ œ์˜ ๋‹ต์„ ๋ชจ์•„์„œ..

Algorithms 2022. 10. 25. 15:07
Algorithm) Binary Search(์ด์ง„ํƒ์ƒ‰)

ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆœ์ฐจ ํƒ์ƒ‰: ๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ž์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• ์ด์ง„ ํƒ์ƒ‰: ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ขํ˜€๊ฐ€๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ด์ง„ ํƒ์ƒ‰์€ ์‹œ์ž‘์ , ๋์ , ์ค‘๊ฐ„์ ์„ ์ด์šฉํ•˜์—ฌ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•จ ์ด์ง„ ํƒ์ƒ‰ ๋™์ž‘ ์˜ˆ์‹œ ์ด์ง„ ํƒ์ƒ‰์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋‹จ๊ณ„๋งˆ๋‹ค ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ 2๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋ฏ€๋กœ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋Š” $log_2N$ ์— ๋น„๋ก€ํ•จ ์˜ˆ๋ฅผ ๋“ค์–ด ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ 32๊ฐœ์ผ ๋•Œ, ์ด์ƒ์ ์œผ๋กœ 1๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด 16๊ฐœ๊ฐ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋‚จ์Œ 2๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด 8๊ฐœ๊ฐ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋‚จ์Œ 3๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด 4๊ฐœ๊ฐ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋‚จ์Œ ๋‹ค์‹œ ๋งํ•ด ์ด์ง„ ํƒ์ƒ‰์€ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ค„์ด๋ฉฐ, ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” $O(logN)$์„ ๋ณด์žฅํ•จ ํŒŒ์ด์ฌ ์ด์ง„ ํƒ์ƒ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ bis..

Algorithms 2022. 10. 25. 12:55