๐Ÿฅ‡์ฝ”๋”ฉํ…Œ์ŠคํŠธ:Algorithm

๐Ÿฅ‡์ฝ”๋”ฉํ…Œ์ŠคํŠธ:Algorithm

visited๋ฐฐ์—ด์ด 3์ฐจ์›์ธ bfs ์ตœ๋‹จ๊ฒฝ๋กœ ํƒ์ƒ‰ ๋ฌธ์ œ (๋ฐฑ์ค€ 1600๋ฒˆ)

https://www.acmicpc.net/problem/1600 1600๋ฒˆ: ๋ง์ด ๋˜๊ณ ํ”ˆ ์›์ˆญ์ด ์ฒซ์งธ ์ค„์— ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์— ๊ฒฉ์žํŒ์˜ ๊ฐ€๋กœ๊ธธ์ด W, ์„ธ๋กœ๊ธธ์ด H๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ H์ค„์— ๊ฑธ์ณ W๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, 0์€ ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ํ‰์ง€, 1์€ ์žฅ์• ๋ฌผ์„ ๋œปํ•œ๋‹ค. ์žฅ์• ๋ฌผ์ด ์žˆ www.acmicpc.net ํ’€์ด๋ฅผ ์œ„ํ•œ ํ•ต์‹ฌ ๋ง ์ด๋™ ํšŸ์ˆ˜์— ๋”ฐ๋ฅธ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ visited[][] ์™€ ๊ฐ™์ด 2์ฐจ์› ๋ฐฐ์—ด๋กœ ์ง„ํ–‰ํ•˜์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ํ•˜๊ฒŒ๋˜๋ฉด ๋ง๋กœ ์ด๋™ํ•œ ์ง€์ ์— visited๊ฐ€ true๋กœ ๋˜์–ด ๊ทธ๋ƒฅ ์ด๋™์ด ๋” ์ด์ƒ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด (0,0)์—์„œ bfs๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด (0,1) (1,0) (1,2)๊ฐ€ ๋ฐฉ๋ฌธ์ฒดํฌ ๋˜๊ณ  ํ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ์—ฌ๊ธฐ..

๐Ÿฅ‡์ฝ”๋”ฉํ…Œ์ŠคํŠธ:Algorithm

์ด๋ถ„ ๊ทธ๋ž˜ํ”„ (๋ฐฑ์ค€ 1707)

https://www.acmicpc.net/problem/1707 1707๋ฒˆ: ์ด๋ถ„ ๊ทธ๋ž˜ํ”„ ์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ, ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ •์ ์˜ ๊ฐœ์ˆ˜ V์™€ ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ E๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— www.acmicpc.net ์ด๋ถ„๊ทธ๋ž˜ํ”„ ์ธ์ ‘ํ•œ ์ •์ ๋ผ๋ฆฌ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒ‰์œผ๋กœ ์น ํ•ด์„œ ๋ชจ๋“  ์ •์ ์„ ๋‘ ๊ฐ€์ง€ ์ƒ‰์œผ๋กœ๋งŒ ์น ํ•  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„. ํ’€์ด๋ฅผ ์œ„ํ•œ ์•„์ด๋””์–ด : ์ด๋ถ„๊ทธ๋ž˜ํ”„์˜ ํ•˜๋‚˜์˜ ๊ฐ„์„ ์— ์—ฐ๊ฒฐ๋œ ๋‘ ๋…ธ๋“œ์˜ ์ƒ‰์ƒ์€ ์„œ๋กœ ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค. ๋ชจ๋“  ๋…ธ๋“œ์— ๋Œ€ํ•ด bfs๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์™€ ์„œ๋กœ ์ƒ‰์ƒ์ด ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ๋ณ€์ˆ˜ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ์™€ ์ƒ‰์ƒํ™•์ธ์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” int[] chk ๋ฐฐ์—ด์„ ๋’€๋‹ค. -1 : ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ ..

๐Ÿฅ‡์ฝ”๋”ฉํ…Œ์ŠคํŠธ:Algorithm

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) ์„ ๋‘ฌ์„œ ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋œ ์ขŒํ‘œ์˜ ๊ฒฝ์šฐ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ๋ฐฉ..

๐Ÿฅ‡์ฝ”๋”ฉํ…Œ์ŠคํŠธ:Algorithm

๊ตฌํ˜„, ๋ฐฑํŠธ๋ž˜ํ‚น (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๊ฐœ ๋†“๋Š” ๊ณผ์ •์€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. ์™œ..

๐Ÿฅ‡์ฝ”๋”ฉํ…Œ์ŠคํŠธ:Algorithm

๋ฐฑํŠธ๋ž˜ํ‚น(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) ์กฐ๊ฑด ๊ณ„๋‹จ์„ ๋งˆ์ง€๋ง‰ ๋ธ”๋Ÿญ..

๐Ÿฅ‡์ฝ”๋”ฉํ…Œ์ŠคํŠธ:Algorithm

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];..

๐Ÿฅ‡์ฝ”๋”ฉํ…Œ์ŠคํŠธ:Algorithm

๋‘ ์ง€์ ์ด ๋™์‹œ์—, ๋ฒฝ์— ๋‹ฟ๊ธฐ ์ „ ๊นŒ์ง€ ์›€์ง์ด๋Š” 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()..

๐Ÿฅ‡์ฝ”๋”ฉํ…Œ์ŠคํŠธ:Algorithm

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

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

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