โซ๏ธ ๋ฌธ์
https://www.acmicpc.net/problem/2210
โซ๏ธ ๋์ ํ์ด
๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ DFS์์ ์ง๊ฐํ๋ค. ์์์ ์ผ๋ก๋ถํฐ ๊ฐ์ฅ ๊น์ depth๊น์ง ํ๊ณ ๋ค๊ณ , ๊ทธ ๋ถ๋ถ์์ 6๊ธ์๊ฐ ๋๋ฉด ๋ฑ dfsํจ์๋ฅผ ๋ฉ์ถฐ์ฃผ๋ฉด ๋๋ ๋ถ๋ถ์ด๋ฏ๋ก dfs์ฌ๊ท๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋๊ตฌ๋! ์๊ฐํ๋ค. (ํ์คํ ๊ฐ๋ ์ ํํํ ํ๊ณ ํ๋๊น ๋ณด์ด๊ธด ๋ณด์ด๋ ๊ณ ๋ง, ๋ฟ--๋ฏ)
๊ทธ๋์ ๋ด๊ฐ ์๊ฐํ dfs์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ dfs๋ 6๊ธ์๊ฐ ๋๋ฉด ๋ฐ๋ก return ํด์ฃผ๊ณ ํ์ถํ๊ธฐ ๋๋ฌธ์, ์์์ ์ ์ ๋ถ ๋ฐ๊ฟ์ ์ ๋ถ๋ค ํ์ํด์ฃผ์ด์ผํ๋ค! ๊ทธ๋์ dfs๋ฅผ ์ค์ ๋ก ์คํํ๋ ๋ถ๋ถ์ for๋ฌธ์ผ๋ก ์์์ ์ ์ ๋ถ ๋ฃ์ด์ฃผ์ด์ผํ๋ค. ์ด๊ฒ์ ์ฝ๋๋ก ๊ทธ๋๋ก ๊ตฌํํด์ฃผ๋ฉด ์๋์ ๊ฐ๋ค.
โซ๏ธ ์ ๋ต์ฝ๋
ํ ๋ฒ ํ๋ฆฐ ์ด์ ๋,,, count๋ฅผ ์ถ๋ ฅํด์ผํ๋๋ฐ array ๊ทธ๋๋ก ์ ๋ถ ์ถ๋ ฅํด์คฌ๋ค ,, ๋ฌธ์ ๋ฅผ ์๋ณด์ ํํ
import Foundation
var matrix = [[Int]]()
for _ in 0..<5 {
matrix.append(readLine()!.split(separator: " ").map{ Int($0)! })
}
let dx = [-1, 1, 0, 0]
let dy = [0, 0, -1, 1]
var answerList = [String]()
private func dfs(x: Int, y: Int, number: String) {
var number = number
number += String(matrix[x][y])
if number.count == 6 {
answerList.append(number)
return
}
for i in 0..<4 {
let nx = x + dx[i]
let ny = y + dy[i]
if nx < 0 || nx >= 5 || ny < 0 || ny >= 5 {
continue
}
dfs(x: nx, y: ny, number: number)
}
}
for i in 0..<5 {
for j in 0..<5 {
dfs(x: i, y: j, number: "")
}
}
print(Set(answerList).count)
๐ฌ ๊ทธ๋ฅ,, ์ฃผ์ ๋ฆฌ์ฃผ์ ๋ฆฌ
์คํฐ๋์น๊ตฌ๋ค๊ณผ DFS/BFS ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด๋ฅผ ์ผ์ฃผ์ผ๋์ ์์ํ๋ค. ๊ทธ๋ฅ ๋ฌดํฑ๋๊ณ ๋ฌธ์ ๋ฅผ ํ๋ ค๊ณ ํ์ง๋ง, ์ด๋ฒ์ ํ ๋ฌธ์ ๋ค์ ์ ๋ถ ๋ฐฑ์ค ์ค๋ฒ1 ์ด์ ์์ค์ด์๊ณ , ๊ทธ๋๋ก ํ๋ฉด ๋ ์ธํฐ๋ท์ ๋ง๊ตฌ ์ฐธ๊ณ ํ๋ฉด์ ํ๊ฒ ๋ปํ๋ค... dfs/bfs๊ฐ ๋ฌธ์ ์ ํ๋ง ์ตํ๋ฉด ์์ ์๊ธฐ๋ฌธ์ ๋ผ๊ณ ๊ทธ๋ฌ๋๋ฐ, ๋ ์ค์ผ ์ด๋ ต์ง? ์์ง ๊ฐ๋ ์ ํ์ ํ์ง ๋ชปํด์ ์ธ๊ฒ ๊ฐ์์, ๋ค์ ๊ณต๋ถ๋ฅผ ํ๋ค. ๊ทธ ๊ณต๋ถ ๋ด์ฉ์ ์๋ ์ฐธ๊ณ !
https://github.com/HotCodeBreakers/CodingTest/discussions/25
์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค ๋ผ๋ ์ฑ ์ ๊ธฐ์ค์ผ๋ก ๊ณต๋ถ๋ฅผ ํ๊ธฐ๋ก ํ๋๋ฐ, ์ฐ๋ฆฌ๋ ๊ทธ๋ฅ ๋ฒ์๋ง ๋ง์ถฐํ๊ณ ์ฑ ์ ์์ฃผ๋ก ๋ฌธ์ ๋ฅผ ๊ฐ์ ธ๊ฐ์ง ์๋๋ค! ํ์ด์ฌ์ด ์๋๊ธฐ๋ํ๊ณ , ์ฑ ์ ์์ง๋ง ์ธํฐ๋ท์๋ ์๋ ๋ฌธ์ ๊ฐ ๋ง๊ธฐ ๋๋ฌธ...
๊ทธ๋์ ๊ทธ๋ฅ ๋ฌดํฑ๋๊ณ ๊ฐ๋ ๊ณต๋ถ๋ฅผ ํ์ง ์๊ณ ์ง๋๊ฐ๋๋ฐ, ํ์คํ,,,, ์ฒ์๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ฐ๋ ์ ์ตํ๊ณ ์ ํ์ ํ์ ํ๊ณ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ ๋ ์ฝ๊ฒ ํ๋ฆฌ๋ ๊ธฐ๋ถ์ด๋ค. ์์ผ๋ก ๊ฐ๋ ๊ณต๋ถ๋ฅผ ์ํํ ํ์ง ๋ง์์ผ๊ฒ ๋ค์์! ํ์ดํ
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] (Swift) 1743๋ฒ - ์์๋ฌผ ํผํ๊ธฐ (DFS) (4) | 2023.02.27 |
---|---|
[๋ฐฑ์ค] (Swift) 4963๋ฒ - ์ฌ์ ๊ฐ์ (DFS, ์ฌ๊ท) (0) | 2023.02.22 |
[๋ฐฑ์ค] (Swift) 20546๋ฒ - ๊ธฐ์ ์ ๋งค๋ฏธ๋ฒ (๊ตฌํ) (0) | 2023.02.15 |
[๋ฐฑ์ค] (Swift) 20291๋ฒ - ํ์ผ ์ ๋ฆฌ (๊ตฌํ) (0) | 2023.02.15 |
[๋ฐฑ์ค] (Swift) 1244๋ฒ - ์ค์์น ์ผ๊ณ ๋๊ธฐ (๊ตฌํ) (0) | 2023.02.15 |