๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

DFS + DP (๋ฐฑ์ค€ 1520 ๋‚ด๋ฆฌ๋ง‰๊ธธ)

https://www.acmicpc.net/problem/1520 1520๋ฒˆ: ๋‚ด๋ฆฌ๋ง‰ ๊ธธ ์ฒซ์งธ ์ค„์—๋Š” ์ง€๋„์˜ ์„ธ๋กœ์˜ ํฌ๊ธฐ M๊ณผ ๊ฐ€๋กœ์˜ ํฌ๊ธฐ N์ด ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด ๋‹ค์Œ M๊ฐœ ์ค„์— ๊ฑธ์ณ ํ•œ ์ค„์— N๊ฐœ์”ฉ ์œ„์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ๊ฐ ์ง€์ ์˜ ๋†’์ด๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. www.acmicpc.net ํ’€์ด๊ณผ์ • (r,c)์—์„œ ๋ชฉ์ ์ง€ (M-1,N-1)๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ์˜ ๊ฐฏ์ˆ˜๋Š” (r,c)์™€ ์ธ์ ‘ํ•œ (nr,nc)์—์„œ ๋ชฉ์ ์ง€ (M-1,N-1)๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ ๊ฐฏ์ˆ˜์˜ ํ•ฉ์ด๋‹ค. ์œ„ ๊ณผ์ •์„ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค ๋ณดํ†ต์˜ bottom-up ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” dp๊ฐ€ ์•„๋‹ˆ์—ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์ œ์ด์…˜ ๋ฐฉ๋ฒ• ๋ฐฉ๋ฌธ์ฒดํฌ ๋ฐฐ์—ด(visited) ์„ ๋‘ฌ์„œ ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋œ ์ขŒํ‘œ์˜ ๊ฒฝ์šฐ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ๋ฐฉ..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

๊ตฌํ˜„, ๋ฐฑํŠธ๋ž˜ํ‚น (15684 ์‚ฌ๋‹ค๋ฆฌ ์กฐ์ž‘)

https://www.acmicpc.net/problem/15684 15684๋ฒˆ: ์‚ฌ๋‹ค๋ฆฌ ์กฐ์ž‘ ์‚ฌ๋‹ค๋ฆฌ ๊ฒŒ์ž„์€ N๊ฐœ์˜ ์„ธ๋กœ์„ ๊ณผ M๊ฐœ์˜ ๊ฐ€๋กœ์„ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ธ์ ‘ํ•œ ์„ธ๋กœ์„  ์‚ฌ์ด์—๋Š” ๊ฐ€๋กœ์„ ์„ ๋†“์„ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ฐ๊ฐ์˜ ์„ธ๋กœ์„ ๋งˆ๋‹ค ๊ฐ€๋กœ์„ ์„ ๋†“์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์˜ ๊ฐœ์ˆ˜๋Š” H์ด๊ณ , ๋ชจ๋“  ์„ธ๋กœ์„  www.acmicpc.net ํ’€์ด๊ณผ์ • check() :i๋ฒˆ ์„ธ๋กœ์„ ์˜ ๊ฒฐ๊ณผ๊ฐ€ i๋ฒˆ์ด ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜ ์‚ฌ๋‹ค๋ฆฌ 0๊ฐœ ๋†“๊ณ  check()ํ•˜๊ธฐ ์‚ฌ๋‹ค๋ฆฌ 1๊ฐœ๋ฅผ ๋†“๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด check()ํ•˜๊ธฐ ์‚ฌ๋‹ค๋ฆฌ 2๊ฐœ๋ฅผ ๋†“๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด check()ํ•˜๊ธฐ ์‚ฌ๋‹ค๋ฆฌ 3๊ฐœ๋ฅผ ๋†“๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด check()ํ•˜๊ธฐ ๋งŒ์•ฝ ์‚ฌ๋‹ค๋ฆฌ 1๊ฐœ๋ฅผ ๋†“๋Š” ๊ณผ์ •์—์„œ check()==true๊ฐ€ ๋œ๋‹ค๋ฉด ์‚ฌ๋‹ค๋ฆฌ 2๊ฐœ, 3๊ฐœ ๋†“๋Š” ๊ณผ์ •์€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. ์™œ..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

๋ฐฑํŠธ๋ž˜ํ‚น(14890 ๊ฒฝ์‚ฌ๋กœ)

https://www.acmicpc.net/problem/14890 14890๋ฒˆ: ๊ฒฝ์‚ฌ๋กœ ์ฒซ์งธ ์ค„์— N (2 ≤ N ≤ 100)๊ณผ L (1 ≤ L ≤ N)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ง€๋„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์นธ์˜ ๋†’์ด๋Š” 10๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ๋ชจ๋“  ํ–‰์— ๋Œ€ํ•ด์„œ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉฐ ์ง€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ธธ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. โœ…์™ผ์ชฝ ๋ธ”๋Ÿญ๊ณผ์˜ ๋†’์ด ์ฐจ์ด(gap) ๊ณ„์‚ฐ gap == 0 : ๋‹ค์Œ ์นธ์œผ๋กœ ์žฌ๊ท€ gap == 1 : ์™ผ์ชฝ ๋ธ”๋Ÿญ์— ๊ณ„๋‹จ์„ ๋†“์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ ํ›„ ๋‹ค์Œ ์นธ์œผ๋กœ ์žฌ๊ท€ gap == -1 : ์ด๋ฉด ์˜ค๋ฅธ์ชฝ ๋ธ”๋Ÿญ์— ๊ณ„๋‹จ์„ ๋†“์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ ํ›„ ๊ณ„๋‹จ ์ดํ›„ ์นธ์œผ๋กœ ์žฌ๊ท€ โœ…๋ฐฑํŠธ๋ž˜ํ‚น ์ข…๋ฃŒ(basecase) ์กฐ๊ฑด ๊ณ„๋‹จ์„ ๋งˆ์ง€๋ง‰ ๋ธ”๋Ÿญ..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

BFS (๋ฐฑ์ค€ 16234 ์ธ๊ตฌ์ด๋™)

https://www.acmicpc.net/problem/16234 16234๋ฒˆ: ์ธ๊ตฌ ์ด๋™ N×Nํฌ๊ธฐ์˜ ๋•…์ด ์žˆ๊ณ , ๋•…์€ 1×1๊ฐœ์˜ ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋•…์—๋Š” ๋‚˜๋ผ๊ฐ€ ํ•˜๋‚˜์”ฉ ์กด์žฌํ•˜๋ฉฐ, rํ–‰ c์—ด์— ์žˆ๋Š” ๋‚˜๋ผ์—๋Š” A[r][c]๋ช…์ด ์‚ด๊ณ  ์žˆ๋‹ค. ์ธ์ ‘ํ•œ ๋‚˜๋ผ ์‚ฌ์ด์—๋Š” ๊ตญ๊ฒฝ์„ ์ด ์กด์žฌํ•œ๋‹ค. ๋ชจ www.acmicpc.net ํ’€์ด์ˆœ์„œ 0. ํ•˜๋ฃจ๋งˆ๋‹ค NxNํฌ๊ธฐ์˜ ๋•…์„ ํ™•์ธํ•˜๋ฉฐ ๊ตญ๊ฒฝ์„ ํ—ˆ๋ฌผ์—ˆ๋Š”์ง€ ํ™•์ธ while(true){ if(!solve()){ // ๊ตญ๊ฒฝ ํ—ˆ๋ฌผ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๊ตญ๊ฒฝ ํ—ˆ๋ฌผ๊ณ  ์ธ๊ตฌ์ˆ˜ ๊ฐฑ์‹  break; } ans+=1; } ํ•˜๋ฃจ๋งˆ๋‹ค (0,0)์—์„œ bfs๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ๊ตญ๊ฒฝ์„ ํ—ˆ๋ฌผ๊ณ  ์ธ๊ตฌ๋ฅผ ์ด๋™์‹œ์ผฐ๋‹ค. static boolean solve(){ visited = new boolean[N][N];..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

๋‘ ์ง€์ ์ด ๋™์‹œ์—, ๋ฒฝ์— ๋‹ฟ๊ธฐ ์ „ ๊นŒ์ง€ ์›€์ง์ด๋Š” bfs (๋ฐฑ์ค€ 13460 ๊ตฌ์Šฌํƒˆ์ถœ2)

ํŠน์ดํ•œ bfs๋ฌธ์ œ ํ•ต์‹ฌ ๋กœ์ง 1. ๊ตฌ์Šฌ์„ ๋™์‹œ์— ์›€์ง์ด๊ธฐ 2. ๋ฒฝ์— ๋‹ฟ๊ธฐ ์ง์ „๊นŒ์ง€ ์ตœ๋Œ€ํ•œ ์›€์ง์ด๊ธฐ 3. ๋นจ๊ฐ„ ๊ตฌ์Šฌ๊ณผ, ํŒŒ๋ž€ ๊ตฌ์Šฌ์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌ 1. ๊ตฌ์Šฌ์„ ๋™์‹œ์— ์›€์ง์ด๊ธฐ ๋นจ๊ฐ„๊ณต๊ณผ ํŒŒ๋ž€๊ณต์˜ ์ขŒํ‘œ๋ฅผ ๊ฐ™์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Marble ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. class Marble{ private int redRow,redCol,blueRow,blueCol; public Marble(){} public Marble(int redRow, int redCol, int blueRow, int blueCol){ this.redRow = redRow; this.redCol = redCol; this.blueRow = blueRow; this.blueCol = blueCol; } public int getRedRow()..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

๋ฒจ๋งŒ ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๊ฐ„์„  ์ค‘์‹ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿ‘‰ ๊ทธ๋ž˜ํ”„๋“ค์„ ์—์ง€ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ ์Œ์ˆ˜ ๊ฐ„์„ ์ด ํฌํ•จ๋œ ์ƒํ™ฉ์—์„œ์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๋ฌธ์ œ์— ์‚ฌ์šฉ. ์Œ์ˆ˜ ๊ฐ„์„ ์˜ ์ˆœํ™˜์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Œ. ๋งค๋ฒˆ ๋ชจ๋“  ๊ฐ„์„ ์„ ์ „๋ถ€ ํ™•์ธ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๋ฆฌ์ŠคํŠธ์—์„œ ์—…๋ฐ์ดํŠธ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋Š” V - 1 ์‹œ๊ฐ„๋ณต์žก๋„ : O(VE), ๋‹ค์ต์ŠคํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋น„ํ•ด ๋Š๋ฆฌ๋‹ค ์Œ์ˆ˜๊ฐ„์„ ์ด ์žˆ์–ด๋„ ์ˆœํ™˜์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. (์Œ์ˆ˜๊ฐ„์„ ์˜ ์ˆœํ™˜์ด ๋ฐœ์ƒํ•˜๋ฉด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ์Œ์˜ ๋ฌดํ•œ์ธ ๋…ธ๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋จ) ๋™์ž‘์›๋ฆฌ 1. ์ถœ๋ฐœ ๋…ธ๋“œ๋ฅผ ์„ค์ • 2. ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์„ ์ดˆ๊ธฐํ™” 3. ๋‹ค์Œ์˜ ๊ณผ์ •์„ N-1 ๋ฒˆ ๋ฐ˜๋ณต 3-1. ์ „์ฒด ๊ฐ„์„  E๊ฐœ๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธ 3-2. ๊ฐ ๊ฐ„์„ ์„ ๊ฑฐ์ณ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๋น„์šฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹  4. ๋งŒ์•ฝ ์Œ์ˆ˜ ๊ฐ„์„  ์ˆœํ™˜์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ฒดํฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด 3..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

์„œ๋กœ์†Œ ์ง‘ํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ (Union Find) (๋ฐฑ์ค€ 1043๋ฒˆ)

๋”๋ณด๊ธฐ [Gold IV] ๊ฑฐ์ง“๋ง - 1043 ๋ฌธ์ œ ๋งํฌ ์„ฑ๋Šฅ ์š”์•ฝ ๋ฉ”๋ชจ๋ฆฌ: 14352 KB, ์‹œ๊ฐ„: 128 ms ๋ถ„๋ฅ˜ ์ž๋ฃŒ ๊ตฌ์กฐ, ๋ถ„๋ฆฌ ์ง‘ํ•ฉ, ๊ทธ๋ž˜ํ”„ ์ด๋ก , ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์ œ์ถœ ์ผ์ž 2024๋…„ 1์›” 3์ผ 16:32:22 ๋ฌธ์ œ ์„ค๋ช… ์ง€๋ฏผ์ด๋Š” ํŒŒํ‹ฐ์— ๊ฐ€์„œ ์ด์•ผ๊ธฐ ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•œ๋‹ค. ํŒŒํ‹ฐ์— ๊ฐˆ ๋•Œ๋งˆ๋‹ค, ์ง€๋ฏผ์ด๋Š” ์ง€๋ฏผ์ด๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์ด์•ผ๊ธฐ๋ฅผ ํ•œ๋‹ค. ์ง€๋ฏผ์ด๋Š” ๊ทธ ์ด์•ผ๊ธฐ๋ฅผ ๋งํ•  ๋•Œ, ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์ง„์‹ค๋กœ ๋งํ•˜๊ฑฐ๋‚˜ ์—„์ฒญ๋‚˜๊ฒŒ ๊ณผ์žฅํ•ด์„œ ๋งํ•œ๋‹ค. ๋‹น์—ฐํžˆ ๊ณผ์žฅํ•ด์„œ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์žฌ๋ฏธ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋˜๋„๋ก์ด๋ฉด ๊ณผ์žฅํ•ด์„œ ์ด์•ผ๊ธฐํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์ง€๋ฏผ์ด๋Š” ๊ฑฐ์ง“๋ง์Ÿ์ด๋กœ ์•Œ๋ ค์ง€๊ธฐ๋Š” ์‹ซ์–ดํ•œ๋‹ค. ๋ฌธ์ œ๋Š” ๋ช‡๋ช‡ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ ์ด์•ผ๊ธฐ์˜ ์ง„์‹ค์„ ์•ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ์‚ฌ๋žŒ๋“ค์ด ํŒŒํ‹ฐ์— ์™”์„ ๋•Œ๋Š”, ์ง€๋ฏผ์ด๋Š” ์ง„์‹ค์„ ์ด์•ผ๊ธฐํ•  ์ˆ˜ ..

๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest

๋‹ค์ต์ŠคํŠธ๋ผ (boj 12851 ์ˆจ๋ฐ”๊ผญ์งˆ2)

๋ฌธ์ œ : https://www.acmicpc.net/problem/12851 12851๋ฒˆ: ์ˆจ๋ฐ”๊ผญ์งˆ 2 ์ˆ˜๋นˆ์ด๋Š” ๋™์ƒ๊ณผ ์ˆจ๋ฐ”๊ผญ์งˆ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ํ˜„์žฌ ์  N(0 ≤ N ≤ 100,000)์— ์žˆ๊ณ , ๋™์ƒ์€ ์  K(0 ≤ K ≤ 100,000)์— ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ๊ฑท๊ฑฐ๋‚˜ ์ˆœ๊ฐ„์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ, ์ˆ˜๋นˆ์ด์˜ ์œ„์น˜๊ฐ€ X์ผ ๋•Œ www.acmicpc.net ๊ธฐ์กด์˜ ์ˆจ๋ฐ”๊ผญ์งˆ ๋ฌธ์ œ์—์„œ ์ตœ๋‹จ๊ฒฝ๋กœ์˜ ๊ฐฏ์ˆ˜๊นŒ์ง€ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. 1. ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๋ฉด ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ณ„์† ํƒ์ƒ‰์„ ์ด์–ด๋‚˜๊ฐ€๋„๋ก ํ•จ์ˆ˜๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค. while(!pq.isEmpty()){ Node cur = pq.poll(); if(cur.idx==K && cur.w==dist[K]){ // ๋ชฉํ‘œ์ง€์ ์— ๋„๋‹ฌํ•œ ๊ฒฝ์šฐ count+=1; } ... } ..

mc.thd
'๐Ÿ“‚์ฝ”๋”ฉํ…Œ์ŠคํŠธ:CodingTest' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (4 Page)