티스토리 뷰
문제
https://www.acmicpc.net/problem/15664
풀이
N과 M(9)를 풀었다면 쉽게 해결할 수 있는 문제였다.
똑같이 중복되면 안되는 것을 생각해서 last라는 변수를 함수 내에 선언하고 dfs함수를 돌고 난 이후에 last값이 바뀌도록 하였다.
이 문제에서는 주어진 배열에서 현재 수보다 큰 인덱스를 가진 수만 표현하면 되므로 check같이 방문을 표시할 변수는 필요없다.
import Foundation
let input = readLine()!.split(separator: " ").map { Int(String($0))! }
let numbers = readLine()!.split(separator: " ").map { Int(String($0))! }.sorted(by: <)
func dfs(_ current: String, _ depth: Int, _ idx: Int) {
var last = 0
if depth == input[1] {
print(current)
return
}
for i in idx..<input[0] {
if last != numbers[i] {
dfs(current + "\(numbers[i]) ", depth + 1, i + 1)
last = numbers[i]
}
}
}
dfs("",0,0)
_____________________________________________________________________________________________________
9번을 좀 더 수월하게 해결했으면 좋았을듯
'PS' 카테고리의 다른 글
[Swift] 백준_N과 M(12)(15666) (0) | 2023.01.18 |
---|---|
[Swift] 백준_N과 M(11)(15665) (0) | 2023.01.18 |
[Swift] 백준_N과 M(9)(15663) (0) | 2023.01.18 |
[Swift] 백준_N과 M(8)(15657) (0) | 2023.01.17 |
[Swift] 백준_N과 M(7)(15656) (0) | 2023.01.17 |
댓글
최근에 올라온 글
- Total
- Today
- Yesterday