티스토리 뷰
문제
https://www.acmicpc.net/problem/15655
풀이
이 문제에서는 두번째 줄에 주어진 수를 가지고 input[1]만큼의 수를 가지는 문자열을 만들어서 출력하는 것이다. 이때, 선택된 숫자보다 큰 수로만 짝을 이뤄서 출력해야한다.
파라미터로 depth이외에도 시작하는 인덱스를 가지고 있어야한다. 배열을 정렬한 뒤에 해당 인덱스 이후의 숫자들을 체크하면 조건을 만족시킬 수 있기때문이다.
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, _ num: Int) {
if depth == input[1] {
print(current)
return
}
for i in num..<input[0] {
dfs(current + "\(numbers[i]) ", depth + 1, i + 1)
}
}
dfs("",0,0)
_____________________________________________________________________________________________________
'PS' 카테고리의 다른 글
[Swift] 백준_N과 M(8)(15657) (0) | 2023.01.17 |
---|---|
[Swift] 백준_N과 M(7)(15656) (0) | 2023.01.17 |
[Swift] 백준_N과 M(5)(15654) (0) | 2023.01.17 |
[Swift] 백준_N과 M(4)(15652) (0) | 2023.01.17 |
[Swift] 백준_N과 M(3)(15651) (2) | 2023.01.17 |
댓글
최근에 올라온 글
- Total
- Today
- Yesterday