티스토리 뷰
문제
https://www.acmicpc.net/problem/15654
풀이
예제 입출력을 보고 문제의 조건을 찾아내보는게 처음이라 살짝 당황했다.
첫 번째 줄에는 숫자의 개수와 출력할 숫자의 개수를 의미하고, 두번째 줄에서는 숫자가 주어진다.
첫번째 예시를 보면 4,5,2라는 수를 1개씩 순서대로 출력하면 된다는 얘기다.
이번 문제에서는 배열에서 선택된 숫자를 제외한 모든 수를 돌아야하므로 check라는 변수가 필요했다.
방문했는지 체크해야 해당 숫자가 포함되지 않으므로 주어진대로 출력할 수 있다.
import Foundation
let input = readLine()!.split(separator: " ").map { Int(String($0))! }
let numbers = readLine()!.split(separator: " ").map { Int(String($0))! }.sorted(by: <)
var check = [Bool](repeating: false, count: input[0])
func dfs(_ current: String, _ depth: Int) {
if depth == input[1] {
print(current)
return
}
for i in 0..<numbers.count {
if !check[i] {
check[i] = true
dfs(current + "\(numbers[i]) ", depth + 1)
check[i] = false
}
}
}
dfs("",0)
_____________________________________________________________________________________________________
얼른 이 시리즈를 끝내고 다른 유형도 풀어봐야 할 것 같다.
'PS' 카테고리의 다른 글
[Swift] 백준_N과 M(7)(15656) (0) | 2023.01.17 |
---|---|
[Swift] 백준_N과 M(6)(15655) (0) | 2023.01.17 |
[Swift] 백준_N과 M(4)(15652) (0) | 2023.01.17 |
[Swift] 백준_N과 M(3)(15651) (2) | 2023.01.17 |
[Swift] 백준_N과 M(2)(15650) (0) | 2023.01.17 |
댓글
최근에 올라온 글
- Total
- Today
- Yesterday