๋ฌธ์ ์ค๋ช
์ง์๋ ๋ณด๋ฌผ์ด ๋ฌปํ ์ฅ์์ ํจ์ ์ด ํ์๋ ๋ณด๋ฌผ ์ง๋๋ฅผ ์ด์ฉํด ๋ณด๋ฌผ์ ์ฐพ์ผ๋ ค ํฉ๋๋ค. ๋ณด๋ฌผ์ง๋๋ ๊ฐ๋ก ๊ธธ์ด๊ฐ n, ์ธ๋ก ๊ธธ์ด๊ฐ m์ธ ์ง์ฌ๊ฐํ ๋ชจ์์ ๋๋ค.
๋งจ ์ผ์ชฝ ์๋ ์นธ์ ์ขํ๋ฅผ (1, 1)์ผ๋ก, ๋งจ ์ค๋ฅธ์ชฝ ์ ์นธ์ ์ขํ๋ฅผ (n, m)์ผ๋ก ๋ํ๋์ ๋, ๋ณด๋ฌผ์ (n, m) ์ขํ์ ๋ฌปํ์์ต๋๋ค. ๋ํ, ์ผ๋ถ ์นธ์๋ ํจ์ ์ด ์์ผ๋ฉฐ, ํด๋น ์นธ์ผ๋ก๋ ์ง๋๊ฐ ์ ์์ต๋๋ค.
์ง์๋ ์ฒ์์ (1, 1) ์ขํ์์ ์ถ๋ฐํด ๋ณด๋ฌผ์ด ์๋ ์นธ์ผ๋ก ์ด๋ํ๋ ค ํฉ๋๋ค. ์ด๋ํ ๋๋ [์,ํ,์ข,์ฐ]๋ก ์ธ์ ํ ๋ค ์นธ ์ค ํ ์นธ์ผ๋ก ๊ฑธ์ด์ ์ด๋ํฉ๋๋ค. ํ ์นธ์ ๊ฑธ์ด์ ์ด๋ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ 1์ ๋๋ค.
์ง์๋ ๋ณด๋ฌผ์ด ์์นํ ์นธ์ผ๋ก ์์ํ๊ฒ ์ด๋ํ๊ธฐ ์ํด ์ ๋น๋ก์ด ์ ๋ฐ์ ํ๋ ์ค๋นํ์ต๋๋ค. ์ด ์ ๋ฐ์ ์ ๊ณ ๋ฐ๋ฉด ํ ๋ฒ์ ๋ ์นธ์ ์ด๋ํ ์ ์์ผ๋ฉฐ, ํจ์ ์ด ์๋ ์นธ๋ ๋์ ์ ์์ต๋๋ค. ํ์ง๋ง, ์ด ์ ๋ฐ์ ํ ๋ฒ๋ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ๋น๋ก์ด ์ ๋ฐ์ ์ฌ์ฉํ์ฌ ๋ฐ์ด์ ๋ ์นธ์ ์ด๋ํ๋ ์๊ฐ๋ 1์ ๋๋ค.
์ด๋ ์ง์๊ฐ ์ถ๋ฐ์ ์์ ๋ณด๋ฌผ์ด ์์นํ ์นธ์ผ๋ก ์ด๋ํ๋๋ฐ ํ์ํ ์ต์ ์๊ฐ์ ๊ตฌํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ง์์ ๋ณด๋ฌผ์ง๋๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๋, ์ง์๊ฐ ๊ฑธ์ด์ ์ค๋ฅธ์ชฝ์ผ๋ก 3์นธ, ๊ฑธ์ด์ ์์ชฝ์ผ๋ก 3์นธ ์ด๋ํ๋ฉด 6์ ์๊ฐ์ ๋ณด๋ฌผ์ด ์์นํ ์นธ์ผ๋ก ์ด๋ํ ์ ์์ต๋๋ค. ๋ง์ฝ, ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฑธ์ด์ 1์นธ, ์์ชฝ์ผ๋ก ๊ฑธ์ด์ 1์นธ, ์ ๋น๋ก์ด ์ ๋ฐ์ ์ฌ์ฉํ์ฌ ์๋ก ๋ฐ์ด 2์นธ, ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฑธ์ด์ 2์นธ ์ด๋ํ๋ค๋ฉด ์ด 5์ ์๊ฐ์ ๋ณด๋ฌผ์ด ์์นํ ์นธ์ผ๋ก ์ด๋ํ ์ ์์ผ๋ฉฐ, ์ด๋ณด๋ค ๋น ๋ฅธ ์๊ฐ ๋ด์ ๋ณด๋ฌผ์ด ์๋ ์์น์ ๋์ฐฉํ ์ ์์ต๋๋ค.
์ง์์ ๋ณด๋ฌผ์ง๋๊ฐ ํํํ๋ ์ง์ญ์ ๊ฐ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ ์ ์ n, ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ ์ ์ m, ํจ์ ์ ์์น๋ฅผ ๋ํ๋ด๋ 2์ฐจ์ ์ ์ ๋ฐฐ์ด hole์ด ์ฃผ์ด์ก์ ๋, ์ง์๊ฐ ๋ณด๋ฌผ์ด ์๋ ์นธ์ผ๋ก ์ด๋ํ๋๋ฐ ํ์ํ ์ต์ ์๊ฐ์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๋จ, ๋ณด๋ฌผ์ด ์๋ ์นธ์ผ๋ก ์ด๋ํ ์ ์๋ค๋ฉด, -1์ return ํด์ผ ํฉ๋๋ค.
์ ํ ์ฌํญ
- 1 ≤ n, m ≤ 1,000
- ๋จ, n * m์ด 3 ์ด์์ธ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค.
- 1 ≤ hole์ ๊ธธ์ด ≤ n * m - 2
- hole[i]๋ [a, b]์ ํํ์ด๋ฉฐ, (a, b) ์นธ์ ํจ์ ์ด ์กด์ฌํ๋ค๋ ์๋ฏธ์ด๋ฉฐ, 1 ≤ a ≤ n, 1 ≤ b ≤ m์ ๋ง์กฑํฉ๋๋ค.
- ๊ฐ์ ํจ์ ์ ๋ํ ์ ๋ณด๊ฐ ์ค๋ณตํด์ ๋ค์ด์์ง ์์ต๋๋ค.
- (1, 1) ์นธ๊ณผ (n, m) ์นธ์ ํญ์ ํจ์ ์ด ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
n | m | hole | result |
4 | 4 | [[2, 3], [3, 3]] | 5 |
5 | 4 | [[1, 4], [2, 1], [2, 2], [2, 3], [2, 4], [3, 3], [4, 1], [4, 3], [5, 3]] | -1 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ณธ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ณด๋ฌผ์ง๋๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ์ผ๋ฉฐ, ๋ณด๋ฌผ์ด ์์นํ ์นธ์ผ๋ก ์ด๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, -1์ return ํด์ผ ํฉ๋๋ค.
ํ์ด
- ๋จ์ ๊ธธ์ฐพ๊ธฐ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ์ง๋ง ๋ง๋ฒ์ ์ ๋ฐ์ด ์กด์ฌํ๋ค.
- ๊ทธ๋์ BFS๋ก ์ด๋ํ ์ ์๋ ์นธ์ ๋ช๋ฒ์งธ ๋จ๊ณ์ธ์ง ์ ๊ณ , ๊ทธ ์์ ์ฐจ์ด๊ฐ ํฐ ๊ณณ์์ ์ ํํ๋ฉด ๋๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ํํํ ๊ทธ๋ ๊ฒ ์ฝ๊ฒ ๋ ๋ฆฌ๊ฐ ์์ง.
- ์ ์ถ๋ ฅ ์#2์์ ์ฌ๋ฐฉ์ด ๋งํ ๊ณณ์์ ์์ํด๋ฒ๋ฆฌ๋ฉด, ๋ง๋ฒ์ ๋ฐ๋ ์ด๋ ๋ฐฉ์์ ์ถ๊ฐํด์ผ ํ๋ค๋ ๊ฒฐ๋ก .
- ์ฆ, ๊ธฐ์กด ๊ธธ์ฐพ๊ธฐ ๋ฐฉ์์ ํจ์ (๋ฒฝ)์ด ์๊ณ , ๋ฒฝ์ ๋ง๋ฒ์ ๋ฐ๋ก 1ํ ๋์ ์ ์๋ค๋ ๊ท์น๊น์ง ์ ์ฉํด์ BFS๋ฅผ ํด์ผํ๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก๋ ํจ์ ์ ๋ฐ์ด๋์ด์ ๋ ๋นจ๋ฆฌ๊ฐ๋ ๊ฒ์ด ์ข๊ณ , ํจ์ ์ด ์์ผ๋ฉด ์๋ฌด๋์๋ ๋ฐ์ด์ 1์นธ ๋นจ๋ฆฌ ๊ฐ๋๊ฒ ์ข๋ค. ๊ทผ๋ฐ ๊ทธ๋ ๊ฒ ๋๋ฉด DP+BFS์ธ๊ฐ?
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต๋ฌธ์ ๋น๊ตฌ ์ฐ์ต (0) | 2023.03.21 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ํ ๋ณํฉ (2023 KAKAO BLIND RECRUITMENT) (2) | 2023.03.13 |
[PCCP ๋ชจ์๊ณ ์ฌ#2] ์นดํ ํ์ฅ (ํ) (0) | 2023.03.11 |
[PCCP ๋ชจ์๊ณ ์ฌ#2] ์ ์ ์ฌ์ ๊ต์ก (์ฐ์ ์์ํ) (0) | 2023.03.10 |
[PCCP ๋ชจ์๊ณ ์ฌ#2] ์ค์ต์ฉ ๋ก๋ด (๋จ์ ๊ตฌํ) (1) | 2023.03.09 |