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

๋ชฉ๋ก์ „์ฒด ๊ธ€ (199)

JUINTINATION

๋ฑ(Deque)

๋ฑ์ด๋ž€? double-ended queue์˜ ์ค„์ž„๋ง, "deck"๊ณผ ๋ฐœ์Œ์ด ๊ฐ™์Œ ์–‘์ชฝ ๋์—์„œ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ์–‘์ชฝ์—์„œ ์‚ญ์ œ์™€ ์‚ฝ์ž…์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ํ์™€ ์Šคํƒ์„ ํ•ฉ์นœ ํ˜•ํƒœ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฑ์˜ ์ฃผ์š” ์—ฐ์‚ฐ add_front(dq, e) :๋ฑ์˜ ์•ž์— ์š”์†Œ ์‚ฝ์ž… add_rear(dq, e) : ๋ฑ์˜ ๋’ค์— ์š”์†Œ ์‚ฝ์ž… delete_front(dq) : ๋ฑ์˜ ์•ž์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ ๋‹ค์Œ ์‚ญ์ œ delete_rear(dq) : ๋ฑ์˜ ๋’ค์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ ๋‹ค์Œ ์‚ญ์ œ get_front(dq) : ๋ฑ์˜ ์•ž์—์„œ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์•ž์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ get_rear(dq) : ๋ฑ์˜ ๋’ค์—์„œ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ๋’ค์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๋ฑ ๊ตฌํ˜„ #define DE..

ํ(Queue)

ํ๋ž€?Queue : (๋ฌด์—‡์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‚ฌ๋žŒ ์ž๋™์ฐจ ๋“ฑ์˜) ์ค„ (์ถœ์ฒ˜ : ๋„ค์ด๋ฒ„ ์˜์–ด์‚ฌ์ „)์„ ์ž…์„ ์ถœ(FIFO : First in First out)์˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋‚˜์ค‘์— ์ง‘์–ด๋„ฃ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ์Šคํƒ๊ณผ๋Š” ๋ฐ˜๋Œ€๋˜๋Š” ๊ฐœ๋…์ด๋‹ค.ํ์˜ ์ข…๋ฅ˜์„ ํ˜• ํ๋ฐฐ์—ด๋กœ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ธฐ๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ๋‹ค.์—ฐ์‚ฐ์„ ๋ฐ˜๋ณตํ•œ ๋’ค์— rear๊ฐ€ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰๊นŒ์ง€ ๊ฐ”์„ ๋•Œ ์‹ค์ œ๋กœ๋Š” ์•ž์— ๊ณต๊ฐ„์ด ๋‚จ์•„์žˆ์ง€๋งŒ ์‚ฝ์ž… ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.์›ํ˜•ํ์œ„์—์„œ ์„ค๋ช…ํ•œ ์„ ํ˜• ํ์˜ ๋ฌธ์ œ์ (์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒ)์„ ๋ณด์™„ํ•œ ํ์ด๋‹ค.rear๊ฐ€ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰๊นŒ์ง€ ๊ฐ”์„ ๋•Œ ์‚ฝ์ž… ์—ฐ์‚ฐ์„ ์‹คํ–‰ํ•˜๋ฉด ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๋งจ ์•ž์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•ด ์›ํ˜•์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.๊ณต๋ฐฑ์ƒํƒœ์™€ ํฌํ™”์ƒํƒœ๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ..

์Šคํƒ(Stack)

์Šคํƒ์ด๋ž€?Stack : (๋ณดํ†ต ๊น”๋”ํ•˜๊ฒŒ ์ •๋ˆ๋œ) ๋ฌด๋”๊ธฐ[๋”๋ฏธ] (์ถœ์ฒ˜ : ๋„ค์ด๋ฒ„ ์˜์–ด์‚ฌ์ „)ํ›„์ž…์„ ์ถœ(LIFO : Last in First out) ๋˜๋Š” ์„ ์ž…ํ›„์ถœ(FILO : First in Last out)์˜ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ํ•œ์ชฝ ๋ฐฉํ–ฅ์—์„œ๋งŒ ์ผ์–ด๋‚œ๋‹ค.์Šคํƒ์˜ ์—ฐ์‚ฐpush(s, item) : ์Šคํƒ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€pop(s) : ์Šคํƒ ์ตœ์ƒ๋‹จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์‚ญ์ œis_full(s) : ์Šคํƒ ํฌํ™”์ƒํƒœ ๊ฒ€์‚ฌis_empty(s) : ์Šคํƒ ๊ณต๋ฐฑ์ƒํƒœ ๊ฒ€์‚ฌpeek(s) : ์Šคํƒ ์ตœ์ƒ๋‹จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜, ์‚ญ์ œX์Šคํƒ ์‚ฌ์šฉ ์˜ˆ์‹œ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ์ž๊ธฐ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•  ๋•Œ ๋ณต๊ท€ ์ฃผ์†Œ๋ฅผ ์‹œ์Šคํ…œ ์Šคํƒ์— ์ €์žฅํ•˜๊ณ  ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์œ„ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ์Šคํƒ์œผ๋กœ๋ถ€ํ„ฐ ํ• ๋‹น๋ฐ›๋Š”๋‹ค..

๋ฐฑ์ค€ 4574๋ฒˆ: ์Šค๋„๋ฏธ๋…ธ์ฟ 

๋ฌธ์ œ https://www.acmicpc.net/problem/4574 4574๋ฒˆ: ์Šค๋„๋ฏธ๋…ธ์ฟ  ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ์ฑ„์›Œ์ ธ ์žˆ๋Š” ๋„๋ฏธ๋…ธ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (10 ≤ N ≤ 35) ๋‹ค์Œ N๊ฐœ ์ค„์—๋Š” ๋„๋ฏธ๋…ธ ํ•˜๋‚˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” U LU V LV๊ฐ€ www.acmicpc.net ํ’€์ด ์Šค๋„๋ฏธ๋…ธ์ฟ ๋Š” ์Šค๋„์ฟ ์™€ ๋„๋ฏธ๋…ธ๋ฅผ ํ˜ผํ•ฉํ•œ ๊ฒŒ์ž„์œผ๋กœ 9 x 9 ํฌ๊ธฐ์˜ ๋ณด๋“œ์— 1๋ถ€ํ„ฐ 9๊นŒ์ง€ ์ˆซ์ž๊ฐ€ 1๊ฐœ์”ฉ ์“ฐ์—ฌ์ ธ ์žˆ๊ณ , ๋‚˜๋จธ์ง€ 72์นธ์€ ๋„๋ฏธ๋…ธ ํƒ€์ผ 36๊ฐœ๋กœ ์ฑ„์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋„๋ฏธ๋…ธ ํƒ€์ผ์€ 1๋ถ€ํ„ฐ 9๊นŒ์ง€ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆซ์ž์˜ ์Œ(1+2, 1+3, 1+4, 1+5, 1+6, 1+7, 1+8, 1+9, 2+3, 2+4, 2+5, ... , 8 + 9)์ด ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ..

๋ฐฑ์ค€ 2580๋ฒˆ: ์Šค๋„์ฟ 

๋ฌธ์ œ https://www.acmicpc.net/problem/2580 2580๋ฒˆ: ์Šค๋„์ฟ  ์Šค๋„์ฟ ๋Š” 18์„ธ๊ธฐ ์Šค์œ„์Šค ์ˆ˜ํ•™์ž๊ฐ€ ๋งŒ๋“  '๋ผํ‹ด ์‚ฌ๊ฐํ˜•'์ด๋ž‘ ํผ์ฆ์—์„œ ์œ ๋ž˜ํ•œ ๊ฒƒ์œผ๋กœ ํ˜„์žฌ ๋งŽ์€ ์ธ๊ธฐ๋ฅผ ๋ˆ„๋ฆฌ๊ณ  ์žˆ๋‹ค. ์ด ๊ฒŒ์ž„์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ฐ€๋กœ, ์„ธ๋กœ ๊ฐ๊ฐ 9๊ฐœ์”ฉ ์ด 81๊ฐœ์˜ ์ž‘์€ ์นธ์œผ๋กœ ์ด๋ฃจ www.acmicpc.net ํ’€์ด ์Šค๋„์ฟ  ๊ทœ์น™์— ๋งž์ถฐ 9 x 9 ํฌ๊ธฐ์˜ ๋ณด๋“œ๋ฅผ ์ฑ„์šฐ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. dfs๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  ์นธ์— ๋Œ€ํ•ด ์–ด๋–ค ์ˆซ์ž๊ฐ€ ํ•ด๋‹น ์นธ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ sudoku ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํ™•์ธ๋ฐ›์•„๊ฐ€๋ฉฐ 2์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด์— ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ C์–ธ์–ด 2์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด arr๋กœ 9 x 9 ํฌ๊ธฐ์˜ ๋ณด๋“œ๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. dfs ํ•จ์ˆ˜์—์„œ ๋ณด๋“œ์˜ (x, y)์˜ ์œ„์น˜์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ arr[y][..

๋ฐฑ์ค€ 9663๋ฒˆ: N-Queen

๋ฌธ์ œ https://www.acmicpc.net/problem/9663 9663๋ฒˆ: N-Queen N-Queen ๋ฌธ์ œ๋Š” ํฌ๊ธฐ๊ฐ€ N × N์ธ ์ฒด์ŠคํŒ ์œ„์— ํ€ธ N๊ฐœ๋ฅผ ์„œ๋กœ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋†“๋Š” ๋ฌธ์ œ์ด๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ€ธ์„ ๋†“๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. www.acmicpc.net ํ’€์ด N × N์ธ ์ฒด์ŠคํŒ ์œ„์— ํ€ธ N๊ฐœ๋ฅผ ์„œ๋กœ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋†“๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ฒด์Šค ๊ทœ์น™์— ๋”ฐ๋ฅด๋ฉด ํ€ธ์€ ์ƒํ•˜์ขŒ์šฐ, ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์œผ๋กœ ๊ธฐ๋ฌผ์ด ์—†๋Š” ์นธ์— ํ•œํ•ด์„œ ์นธ์ˆ˜์˜ ์ œํ•œ ์—†์ด ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ๋ง์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ€ธ์€ xy ์ขŒํ‘œ๋กœ ์ƒ๊ฐํ–ˆ์„ ๋•Œ ๊ฐ x ์ขŒํ‘œ์— 1๊ฐœ์”ฉ, ๊ฐ y ์ขŒํ‘œ์— 1๊ฐœ์”ฉ ์žˆ์–ด์•ผ ํ•˜๊ณ  ๋Œ€๊ฐ์„ ์ƒ์—์„œ ๊ฒน์น˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ C์–ธ์–ด ์ •์ˆ˜ ๋ฐฐ์—ด x์™€ nQueen ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ y๋Š”..