๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/GraphTraversal

๋ฌธ์ œ https://leetcode.com/problems/find-eventual-safe-states/description/ ๊ฐ ๋…ธ๋“œ์˜ ๋ผ๋ฒจ์ด 0๋ถ€ํ„ฐ n-1๊นŒ์ง€ ๋ถ™์–ด์žˆ๋Š” n๊ฐœ์˜ ๋…ธ๋“œ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋Š” 0-indexed ์ธ ์ด์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด `graph`๋กœ ํ‘œํ˜„๋˜๊ณ , graph[i]๋Š” ๋…ธ๋“œ i์™€ ์ธ์ ‘ํ•œ ์ •์ˆ˜ ๋ฐฐ์—ด์ด๋‹ค. ์ฆ‰, ๋…ธ๋“œ i๋กœ๋ถ€ํ„ฐ grape[i]์— ์žˆ๋Š” ๋…ธ๋“œ๋“ค ๊ฐ„์—๋Š” ๊ฐ„์„ ์ด ์กด์žฌํ•œ๋‹ค. ๋งŒ์•ฝ ํ•œ ๋…ธ๋“œ์—์„œ ๋‚˜๊ฐ€๋Š” ๊ฐ„์„ ์ด ์—†๋‹ค๋ฉด ํ•ด๋‹น ๋…ธ๋“œ๋Š” terminal node์ด๋‹ค. ํ•œ ๋…ธ๋“œ๊ฐ€ safe node๋ผ๋Š” ๊ฒƒ์€ ํ•ด๋‹น ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๊ฐ€ terminal node ํ˜น์€ ๋‹ค๋ฅธ safe node๋กœ ์ด์–ด์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  safe node๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐฐ์—ด์„ ..
๋ฌธ์ œ (Gold 3) https://www.acmicpc.net/problem/11967 11967๋ฒˆ: ๋ถˆ์ผœ๊ธฐ (1, 1)๋ฐฉ์— ์žˆ๋Š” ์Šค์œ„์น˜๋กœ (1, 2)๋ฐฉ๊ณผ (1, 3)๋ฐฉ์˜ ๋ถˆ์„ ์ผค ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  (1, 3)์œผ๋กœ ๊ฑธ์–ด๊ฐ€์„œ (2, 1)๋ฐฉ์˜ ๋ถˆ์„ ์ผค ์ˆ˜ ์žˆ๋‹ค. (2, 1)๋ฐฉ์—์„œ๋Š” ๋‹ค์‹œ (2, 2)๋ฐฉ์˜ ๋ถˆ์„ ์ผค ์ˆ˜ ์žˆ๋‹ค. (2, 3)๋ฐฉ์€ ์–ด๋‘์›Œ์„œ ๊ฐˆ ์ˆ˜ ์—†์œผ www.acmicpc.net ํ’€์ด ํƒ์ƒ‰์„ ์–ธ์ œ, ์–ด๋””์—์„œ ํ•˜๋Š”์ง€๊ฐ€ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ๋ฌธ์ œ! ์šฐ์„ , ๋” ์ด์ƒ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ์—†์„ ๋•Œ๊นŒ์ง€ ํƒ์ƒ‰์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ํƒ์ƒ‰ ์ฝ”๋“œ cangoTmp: ํƒ์ƒ‰ํ•˜๊ธฐ ์ „์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ด ๋†“๋Š”๋‹ค. ํƒ์ƒ‰ํ•œ ๊ณณ์—์„œ ์Šค์œ„์น˜๋ฅผ ์ผค ์ˆ˜ ์žˆ๋Š” ๊ณณ์˜ cango๊ฐ’์„ true๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. BFS ํƒ์ƒ‰์„ ๋Œ๊ณ , ํƒ์ƒ‰ํ•œ ๊ณณ์—์„œ map์˜ List๋ฅผ ๋Œ๋ฉฐ ๊ณ„..
๋ฌธ์ œ (Gold 4) https://www.acmicpc.net/problem/14466 14466๋ฒˆ: ์†Œ๊ฐ€ ๊ธธ์„ ๊ฑด๋„ˆ๊ฐ„ ์ด์œ  6 ์ฒซ ์ค„์— N, K, R์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ R์ค„์—๋Š” ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ๊ธธ์ด ์ฃผ์–ด์ง„๋‹ค. ๊ธธ์€ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ธ์ ‘ํ•œ ๋‘ ๋ชฉ์ดˆ์ง€๋ฅผ ์ž‡๊ณ , r c r′ c′์˜ ํ˜•ํƒœ (ํ–‰, ์—ด, ํ–‰, ์—ด)๋กœ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์ˆ˜๋Š” 1 ์ด์ƒ N ์ดํ•˜์ด๋‹ค. www.acmicpc.net ํ’€์ด ๋ฌธ์ œ ํ•ด์„ 1. ์ผ๋ฐ˜ ๋ชฉ์ดˆ์ง€ ์‚ฌ์ด๋Š” ์ƒํ•˜์ขŒ์šฐ ๋ชจ๋‘ ์›€์ง์ผ ์ˆ˜ ์žˆ๋‹ค. 2. ์ค‘๊ฐ„์— ๋‹ค๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด, ๋‹ค๋ฆฌ๋ฅผ ๊ผญ ๊ฑด๋„ˆ์•ผ ํ•œ๋‹ค. ์ฆ‰, ์†Œ(2,2)๋Š” ์†Œ(2,3)๊นŒ์ง€ ๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ์•ผํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๊ทธ ๊ธธ์„ ํšŒํ”ผํ•ด ํšŒ์ƒ‰ ํ™”์‚ดํ‘œ ๊ธธ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์†Œ(3,3)์€ ๋‹ค๋ฅธ ๋ชฉ์ดˆ์ง€์— ๊ฐ€๋ ค๋ฉด ๋ฌด์กฐ๊ฑด ๋‹ค๋ฆฌ๋ฅผ ๊ฑด๋„ˆ์•ผ ํ•˜๋ฏ€๋กœ, ๋ชจ๋“  ์†Œ์™€ ์œ ํšจํ•œ ์Œ์ด ๋œ๋‹ค..
๋ฌธ์ œ (Silver 2) https://www.acmicpc.net/problem/3184 3184๋ฒˆ: ์–‘ ์ฒซ ์ค„์—๋Š” ๋‘ ์ •์ˆ˜ R๊ณผ C๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ(3 ≤ R, C ≤ 250), ๊ฐ ์ˆ˜๋Š” ๋งˆ๋‹น์˜ ํ–‰๊ณผ ์—ด์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋‹ค์Œ R๊ฐœ์˜ ์ค„์€ C๊ฐœ์˜ ๊ธ€์ž๋ฅผ ๊ฐ€์ง„๋‹ค. ์ด๋“ค์€ ๋งˆ๋‹น์˜ ๊ตฌ์กฐ(์šธํƒ€๋ฆฌ, ์–‘, ๋Š‘๋Œ€์˜ ์œ„์น˜)๋ฅผ ์˜๋ฏธํ•œ๋‹ค. www.acmicpc.net ํ’€์ด 1. ์–‘ ๋˜๋Š” ๋Š‘๋Œ€๊ฐ€ ์žˆ๋Š” ์˜์—ญ์„ ๊ฒ€์‚ฌ (BFS) 2. ๊ทธ๋ž˜ํ”„๋ฅผ ๋Œ๋ฉฐ ์–‘๊ณผ ๋Š‘๋Œ€์˜ ์œ„์น˜ ์ €์žฅ 3. ํƒ์ƒ‰ ํ›„, ์–‘๊ณผ ๋Š‘๋Œ€ ๋ฆฌ์ŠคํŠธ ํฌ๊ธฐ ๋น„๊ต ํ›„ map์— ๋ฐ˜์˜ ์ฝ”๋“œ ๋”๋ณด๊ธฐ import java.util.*; import java.io.*; public class Main { static int[] di = {-1,0,1,0}; static int[] dj =..
์ ์ด
'๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/GraphTraversal' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก