728x90 ์ฝ๋ฉํ ์คํธ2 [DFS/BFS : python] ์ด์ฝํ ๋ด์ฉ ์ ๋ฆฌ ๋ฐ ๋ฌธ์ ํ์ด ๊ธฐ๋ก * ์ด์ฝํ ํ์ด์ฌ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ํ์์ด๋? ๋ง์ ์์ ๋ฐ์ดํฐ ์ค์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ณผ์ ๋ํ์ ์ธ ๊ทธ๋ํ ํ์ ์๊ณ ๋ฆฌ์ฆ์ DFS์ BFS๊ฐ ์๋ค. ๋งค์ฐ ์์ฃผ ๋ฑ์ฅํ๋ ์ ํ์ด๋ผ์ ๊ผญ ์์งํ๋๋ก ํ์! ์์์ผํ ์๋ฃ๊ตฌ์กฐ : ์คํ ๋จผ์ ๋ค์ด ์จ ๋ฐ์ดํฐ๊ฐ ๋์ค์ ๋๊ฐ๋ ํ์์ธ ์ ์ ํ์ถ(LIFO)์ ์๋ฃ ๊ตฌ์กฐ์ด๋ค. ์ฐ์ฐ 1๏ธโฃ์คํ์ ํ์ด์ฌ์์ ์ฌ์ฉํ๋ ค๋ฉด ํ์ด์ฌ์์์ ๋ฆฌ์คํธ ์๋ฃํ์ ์ฌ์ฉํ๋ฉด ๋๋ค. stack = [] 2๏ธโฃ์ฐ์ฐ ๋ฆฌ์คํธ์ append ์ฐ์ฐ๊ณผ pop์ฐ์ฐ์ ํตํด ์คํ์ ์ฝ์ ์ญ์ ์ฐ์ฐ์ ํํํ ์ ์๋ค. ์ฝ์ : append() ์ญ์ : pop() ์ถ๋ ฅ ํํ - ์ต์๋จ ์์๋ถํฐ ์ถ๋ ฅ : ๊ฐ์ฅ ๋์ค์ ๋ค์ด์จ ์์๋ถํฐ ์ถ๋ ฅ print(stack[::-1]) - ์ตํ๋จ ์์๋ถ.. 2024. 4. 6. [๊ตฌํ: python]๊ฐ๋ ๊ณผ ๋ฌธ์ ํ์ด ์ ๋ฆฌํ๊ธฐ ๊ตฌํ ๊ตฌํ์ด๋ ๋จธ๋ฆฟ ์์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ค์ฝ๋๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์ด๋ค. ๋ฌธ์์ด ์ฒ๋ฆฌ๋ ํ์ด์ฌ์์ ์ฌ์ด ํธ์ด๋ค. ๊ตฌํ ์ ํ ๋ฌธ์ ๋ ๋ง์ ์ฐ์ต์ด ํ์ํ๋ค 2์ฐจ์ ๊ณต๊ฐ ํ๋ ฌ : 2์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ํ์ ๊ฐ์ ํํ๋ก ๋ํ๋ ์ ์๊ฒ ํด์ค ํ์ด์ฌ : 2์ฐจ์ ๋ฆฌ์คํธ ๋ฐฉํฅ ๋ฒกํฐ x : ํ y : ์ด ์์ 1 ์ํ์ข์ฐ ํ์ด๋ณด๊ธฐ 1๏ธโฃ์ด๋ํ๋ ๋ก์ง - ๋ฐฉํฅ๋ฒกํฐ๋ฅผ ์ด์ฉํด๋ณด์ L : ํ์ ๊ทธ๋๋ก ์ด์ -1 R : ํ์ ๊ทธ๋๋ก ์ด์ +1 U : ํ์ -1 ์ด์ ๊ทธ๋๋ก D : ํ์ +1 ์ด์ ๊ทธ๋๋ก ๊ฐ๊ฐ ๋ฐฉํฅ ๋ฒกํฐ๋ก ๋ํ๋๋ฉด dx = [0 ,0, -1 ,+1] dy = [-1,+1, 0 ,0] 2๏ธโฃ์ ์ฌ๊ฐํ์ ๋ฒ์ด๋๋์ง ํ์ธ ๋ก์ง ํ์ฌ์ ์์น๊ฐ์ ์ขํ๊ฐ >=1 ์ด์ด์ผํจ x >=1 ๊ทธ๋ฆฌ๊ณ y >=1 ์ธ ๊ฒฝ์ฐ ๊ทธ๋ฆฌ๊ณ ๋๋ค n๋ณด๋ค๋ ์๊ฑฐ.. 2024. 3. 28. ์ด์ 1 ๋ค์ 728x90