๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (14)

๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ”„๋กœ์„ธ์Šค - C++

๋ฌธ์ œ ์šด์˜์ฒด์ œ์˜ ์—ญํ•  ์ค‘ ํ•˜๋‚˜๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•  ๊ฒฝ์šฐ ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ช‡ ๋ฒˆ์งธ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ์•Œ์•„๋‚ด๋ฉด ๋ฉ๋‹ˆ๋‹ค. 1. ์‹คํ–‰ ๋Œ€๊ธฐ ํ(Queue)์—์„œ ๋Œ€๊ธฐ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ํ•˜๋‚˜๋ฅผ ๊บผ๋ƒ…๋‹ˆ๋‹ค. 2. ํ์— ๋Œ€๊ธฐ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ์ค‘ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฐฉ๊ธˆ ๊บผ๋‚ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ํ์— ๋„ฃ์Šต๋‹ˆ๋‹ค. 3. ๋งŒ์•ฝ ๊ทธ๋Ÿฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—†๋‹ค๋ฉด ๋ฐฉ๊ธˆ ๊บผ๋‚ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 3.1 ํ•œ ๋ฒˆ ์‹คํ–‰ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์‹œ ํ์— ๋„ฃ์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กœ์„ธ์Šค 4๊ฐœ [A, B, C, D]๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ ๋Œ€๊ธฐ ํ์— ๋“ค์–ด์žˆ๊ณ , ์šฐ์„ ์ˆœ์œ„๊ฐ€ [2, 1, 3, 2]๋ผ๋ฉด [C, D, A, B] ์ˆœ์œผ๋กœ ์‹คํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์‹ค..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ˆ์ƒ ๋Œ€์ง„ํ‘œ - C++

๋ฌธ์ œ โ–ณโ–ณ ๊ฒŒ์ž„๋Œ€ํšŒ๊ฐ€ ๊ฐœ์ตœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋Œ€ํšŒ๋Š” N๋ช…์ด ์ฐธ๊ฐ€ํ•˜๊ณ , ํ† ๋„ˆ๋จผํŠธ ํ˜•์‹์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. N๋ช…์˜ ์ฐธ๊ฐ€์ž๋Š” ๊ฐ๊ฐ 1๋ถ€ํ„ฐ N๋ฒˆ์„ ์ฐจ๋ก€๋Œ€๋กœ ๋ฐฐ์ •๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , 1๋ฒˆ↔2๋ฒˆ, 3๋ฒˆ↔4๋ฒˆ, ... , N-1๋ฒˆ↔N๋ฒˆ์˜ ์ฐธ๊ฐ€์ž๋ผ๋ฆฌ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฒŒ์ž„์—์„œ ์ด๊ธด ์‚ฌ๋žŒ์€ ๋‹ค์Œ ๋ผ์šด๋“œ์— ์ง„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ๋‹ค์Œ ๋ผ์šด๋“œ์— ์ง„์ถœํ•  ์ฐธ๊ฐ€์ž์˜ ๋ฒˆํ˜ธ๋Š” ๋‹ค์‹œ 1๋ฒˆ๋ถ€ํ„ฐ N/2๋ฒˆ์„ ์ฐจ๋ก€๋Œ€๋กœ ๋ฐฐ์ •๋ฐ›์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ 1๋ฒˆ↔2๋ฒˆ ๋ผ๋ฆฌ ๊ฒจ๋ฃจ๋Š” ๊ฒŒ์ž„์—์„œ 2๋ฒˆ์ด ์Šน๋ฆฌํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ ๋ผ์šด๋“œ์—์„œ 1๋ฒˆ์„ ๋ถ€์—ฌ๋ฐ›๊ณ , 3๋ฒˆ↔4๋ฒˆ์—์„œ ๊ฒจ๋ฃจ๋Š” ๊ฒŒ์ž„์—์„œ 3๋ฒˆ์ด ์Šน๋ฆฌํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ ๋ผ์šด๋“œ์—์„œ 2๋ฒˆ์„ ๋ถ€์—ฌ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„์€ ์ตœ์ข… ํ•œ ๋ช…์ด ๋‚จ์„ ๋•Œ๊นŒ์ง€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ์ฒ˜์Œ ๋ผ์šด๋“œ์—์„œ A๋ฒˆ์„ ๊ฐ€์ง„ ์ฐธ๊ฐ€์ž๋Š” ๊ฒฝ์Ÿ์ž๋กœ ์ƒ๊ฐํ•˜๋Š” B๋ฒˆ ์ฐธ๊ฐ€์ž์™€ ๋ช‡ ๋ฒˆ์งธ ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ - C++

๋ฌธ์ œ ๊ด„ํ˜ธ๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์€ '(' ๋ฌธ์ž๋กœ ์—ด๋ ธ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ง์ง€์–ด์„œ ')' ๋ฌธ์ž๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "()()" ๋˜๋Š” "(())()" ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค. ")()(" ๋˜๋Š” "(()(" ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค. '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ž์—ด s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด true๋ฅผ return ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฉด false๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ๋ฌธ์ž์—ด s๋Š” '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฌธ์ œ ์™œ ๋ ˆ๋ฒจ2์ง€?? STL ์“ฐ๋ฉด ๋์ด๋‹ค ์ž๋ฃŒ๊ตฌ์กฐ ์‹œ๊ฐ„์— ์Šคํƒ ๋ฐฐ์šธ ๋•Œ ๊ฐ€์žฅ ํ”ํ•˜๊ฒŒ ์˜ˆ์‹œ๋ฅผ ๋“œ๋Š” ๊ด„ํ˜ธ ๋ฌธ์ œ๋ฅผ ์‹ค์ œ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์  ์ฐ๊ธฐ - C++

๋ฌธ์ œ ์ขŒํ‘œํ‰๋ฉด์„ ์ข‹์•„ํ•˜๋Š” ์ง„์ˆ˜๋Š” x์ถ•๊ณผ y์ถ•์ด ์ง๊ตํ•˜๋Š” 2์ฐจ์› ์ขŒํ‘œํ‰๋ฉด์— ์ ์„ ์ฐ์œผ๋ฉด์„œ ๋†€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„์ˆ˜๋Š” ๋‘ ์–‘์˜ ์ •์ˆ˜ k, d๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์„ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์›์ (0, 0)์œผ๋กœ๋ถ€ํ„ฐ x์ถ• ๋ฐฉํ–ฅ์œผ๋กœ a*k(a = 0, 1, 2, 3 ...), y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ b*k(b = 0, 1, 2, 3 ...)๋งŒํผ ๋–จ์–ด์ง„ ์œ„์น˜์— ์ ์„ ์ฐ์Šต๋‹ˆ๋‹ค. ์›์ ๊ณผ ๊ฑฐ๋ฆฌ๊ฐ€ d๋ฅผ ๋„˜๋Š” ์œ„์น˜์—๋Š” ์ ์„ ์ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, k๊ฐ€ 2, d๊ฐ€ 4์ธ ๊ฒฝ์šฐ์—๋Š” (0, 0), (0, 2), (0, 4), (2, 0), (2, 2), (4, 0) ์œ„์น˜์— ์ ์„ ์ฐ์–ด ์ด 6๊ฐœ์˜ ์ ์„ ์ฐ์Šต๋‹ˆ๋‹ค. ์ •์ˆ˜ k์™€ ์›์ ๊ณผ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ d๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ ์ด ์ด ๋ช‡ ๊ฐœ ์ฐํžˆ๋Š”์ง€ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑ..