๋ชฉ๋ก๊ทธ๋ž˜ํ”„ (16)

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

[๋ฐฑ์ค€] 2667๋ฒˆ: ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ - C++

๋ฌธ์ œ ๊ณผ ๊ฐ™์ด ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ์ง€๋„๊ฐ€ ์žˆ๋‹ค. 1์€ ์ง‘์ด ์žˆ๋Š” ๊ณณ์„, 0์€ ์ง‘์ด ์—†๋Š” ๊ณณ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฒ ์ˆ˜๋Š” ์ด ์ง€๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์—ฐ๊ฒฐ๋œ ์ง‘์˜ ๋ชจ์ž„์ธ ๋‹จ์ง€๋ฅผ ์ •์˜ํ•˜๊ณ , ๋‹จ์ง€์— ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์ด๋ ค ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์€ ์–ด๋–ค ์ง‘์ด ์ขŒ์šฐ, ํ˜น์€ ์•„๋ž˜์œ„๋กœ ๋‹ค๋ฅธ ์ง‘์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค. ๋Œ€๊ฐ์„ ์ƒ์— ์ง‘์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๋Š” ์„ ๋‹จ์ง€๋ณ„๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์ธ ๊ฒƒ์ด๋‹ค. ์ง€๋„๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋‹จ์ง€์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ๊ฐ ๋‹จ์ง€์— ์†ํ•˜๋Š” ์ง‘์˜ ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์ง€๋„์˜ ํฌ๊ธฐ N(์ •์‚ฌ๊ฐํ˜•์ด๋ฏ€๋กœ ๊ฐ€๋กœ์™€ ์„ธ๋กœ์˜ ํฌ๊ธฐ๋Š” ๊ฐ™์œผ๋ฉฐ 5โ‰คNโ‰ค25)์ด ์ž…๋ ฅ๋˜๊ณ , ๊ทธ ๋‹ค์Œ N์ค„์—๋Š” ๊ฐ๊ฐ N๊ฐœ์˜ ์ž๋ฃŒ(0ํ˜น์€ 1)๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค. ์ถœ๋ ฅ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์ด ๋‹จ์ง€์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ..

[๋ฐฑ์ค€] 2331๋ฒˆ: ๋ฐ˜๋ณต์ˆ˜์—ด - C++

๋ฌธ์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋œ ์ˆ˜์—ด์ด ์žˆ๋‹ค. D[1] = A D[n] = D[n-1]์˜ ๊ฐ ์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ P๋ฒˆ ๊ณฑํ•œ ์ˆ˜๋“ค์˜ ํ•ฉ ์˜ˆ๋ฅผ ๋“ค์–ด A=57, P=2์ผ ๋•Œ, ์ˆ˜์—ด D๋Š” [57, 74(=52+72=25+49), 65, 61, 37, 58, 89, 145, 42, 20, 4, 16, 37, โ€ฆ]์ด ๋œ๋‹ค. ๊ทธ ๋’ค์—๋Š” ์•ž์„œ ๋‚˜์˜จ ์ˆ˜๋“ค(57๋ถ€ํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ 58๋ถ€ํ„ฐ)์ด ๋ฐ˜๋ณต๋œ๋‹ค. ์ด์™€ ๊ฐ™์€ ์ˆ˜์—ด์„ ๊ณ„์† ๊ตฌํ•˜๋‹ค ๋ณด๋ฉด ์–ธ์  ๊ฐ€ ์ด์™€ ๊ฐ™์€ ๋ฐ˜๋ณต์ˆ˜์—ด์ด ๋œ๋‹ค. ์ด๋•Œ, ๋ฐ˜๋ณต๋˜๋Š” ๋ถ€๋ถ„์„ ์ œ์™ธํ–ˆ์„ ๋•Œ, ์ˆ˜์—ด์— ๋‚จ๊ฒŒ ๋˜๋Š” ์ˆ˜๋“ค์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์œ„์˜ ์˜ˆ์—์„œ๋Š” [57, 74, 65, 61]์˜ ๋„ค ๊ฐœ์˜ ์ˆ˜๊ฐ€ ๋‚จ๊ฒŒ ๋œ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— A(1 โ‰ค A โ‰ค 9999), P(1 โ‰ค P โ‰ค 5)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์—..

[๋ฐฑ์ค€] 11724๋ฒˆ: ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ - C++

๋ฌธ์ œ ๋ฐฉํ–ฅ ์—†๋Š” ๊ทธ๋ž˜ํ”„๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์—ฐ๊ฒฐ ์š”์†Œ (Connected Component)์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N๊ณผ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 1,000, 0 โ‰ค M โ‰ค Nร—(N-1)/2) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฐ„์„ ์˜ ์–‘ ๋์  u์™€ v๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค u, v โ‰ค N, u โ‰  v) ๊ฐ™์€ ๊ฐ„์„ ์€ ํ•œ ๋ฒˆ๋งŒ ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ํ‘ธ๋Š” ๋ฌธ์ œ. DFS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์—ˆ๋‹ค. 0๋ฒˆ ์ •์ ๋ถ€ํ„ฐ N๊นŒ์ง€ ํ•œ๋ฒˆ์”ฉ DFS๋ฅผ ์‹คํ–‰ํ•˜๋˜, DFS์—์„œ ์ƒˆ๋กœ ์ •์ ์„ ๋ฐฉ๋ฌธํ•  ๋•Œ ๋งˆ๋‹ค c๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ์˜ ์ˆ˜๋ฅผ ์„ธ์ฃผ๊ณ , DFS๊ฐ€ ๋๋‚ฌ์„ ๋•Œ ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ์˜ ์ˆ˜ c๊ฐ€ ์ด์ „๋ณด๋‹ค ์ฆ๊ฐ€ํ–ˆ๋‹ค๋ฉด ์ƒˆ๋กœ์šด ..

[๋ฐฑ์ค€] 1260๋ฒˆ: DFS์™€ BFS - C++

๋ฌธ์ œ ๊ทธ๋ž˜ํ”„๋ฅผ DFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ์™€ BFS๋กœ ํƒ์ƒ‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ์—๋Š” ์ •์  ๋ฒˆํ˜ธ๊ฐ€ ์ž‘์€ ๊ฒƒ์„ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๊ณ , ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ข…๋ฃŒํ•œ๋‹ค. ์ •์  ๋ฒˆํ˜ธ๋Š” 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€์ด๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N(1 โ‰ค N โ‰ค 1,000), ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M(1 โ‰ค M โ‰ค 10,000), ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•  ์ •์ ์˜ ๋ฒˆํ˜ธ V๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ„์„ ์ด ์—ฐ๊ฒฐํ•˜๋Š” ๋‘ ์ •์ ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์–ด๋–ค ๋‘ ์ •์  ์‚ฌ์ด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ„์„ ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๊ฐ„์„ ์€ ์–‘๋ฐฉํ–ฅ์ด๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— DFS๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ, ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” BFS๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. V๋ถ€ํ„ฐ ๋ฐฉ๋ฌธ๋œ ์ ์„ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ ๋ฌธ์ œ - 2. ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)

'์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ with C++' ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS) ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 2.2.3 ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ; Breadth-First Search ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)์€ ์‹œ์ž‘ ์ •์ ๊ณผ ๊ฐ€๊นŒ์šด ์ •์ ๋ถ€ํ„ฐ ๋ฐ˜๋ณต์ ์œผ๋กœ ํƒ์ƒ‰ํ•ด๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชจ์–‘์˜ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. 0๋ฒˆ์งธ ์ •์ ์„ ์‹œ์ž‘์œผ๋กœ ์ž‘์€ ๊ฐ’๋ถ€ํ„ฐ ์ฐพ์•„๊ฐ„๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, BFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋œ๋‹ค. 1๋‹จ๊ณ„ : 0๋ฒˆ ์ •์  ๋ฐฉ๋ฌธ 2๋‹จ๊ณ„ : 0๋ฒˆ ์ •์ ๊ณผ ์ธ์ ‘ํ•œ ์ •์  ์ค‘ ๊ฐ€์žฅ ๊ฐ’์ด ์ž‘์€ 1๋ฒˆ ์ •์  ๋ฐฉ๋ฌธ 3๋‹จ๊ณ„ : 0๋ฒˆ ์ •์ ๊ณผ ์ธ์ ‘ํ•œ ์ •์  ์ค‘ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๊ณ , ๊ฐ€์žฅ ๊ฐ’์ด ์ž‘์€ 2๋ฒˆ ์ •์  ๋ฐฉ๋ฌธ 4๋‹จ๊ณ„ : 0๋ฒˆ ์ •์ ๊ณผ ์ธ์ ‘ํ•œ ์ •์  ์ค‘ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ 3๋ฒˆ ์ •์  ๋ฐฉ๋ฌธ 5..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ ๋ฌธ์ œ - 1. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)

'์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ with C++' ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋”๋ณด๊ธฐ 1. ๊ทธ๋ž˜ํ”„ ; Graph 1.1 ๊ฐœ๋… ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ ๋ฌธ์ œ๋ฅผ ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ์งง๊ฒŒ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์ž๋ฉด, ๊ทธ๋ž˜ํ”„๋Š” ์ •์ (vertex)์˜ ์ง‘ํ•ฉ๊ณผ ์ •์ ๋“ค์„ ์„œ๋กœ ์ž‡๋Š” ๊ฐ„์„ (edge)์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜ํ•™์ ์œผ๋กœ๋Š” G = (v๋Š” ์ •์ , e๋Š” ๊ฐ„์„ ์˜ ์ง‘ํ•ฉ) ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„์„  ๋ฐฉํ–ฅ์˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„(directed graph)์™€ ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„(undirected graph)๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ณ , ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ๊ฐ€์ค‘ ๊ทธ๋ž˜ํ”„(weighted graph)์™€ ๋น„๊ฐ€์ค‘ ๊ทธ๋ž˜ํ”„(unweighted graph)๋กœ ๋‚˜๋ˆˆ๋‹ค. 2. ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ ๋ฌธ์ œ..