[백준 2992] 크면서 작은 수

Junyoung Park·2022년 7월 7일
0

코딩테스트

목록 보기
496/631
post-thumbnail

1. 문제 설명

크면서 작은 수

2. 문제 분석

정수 배열이 아니라 문자열 배열을 통해 쉽게 join 및 비교 가능하도록 구현.

3. 나의 풀이

import Foundation

let number = String(readLine()!)
let numCnt = number.count
let numberArray = Array(number).map{String($0)}
var check = Array(repeating: false, count: number.count)
let INF = Int.max
var answer = INF

func DFS(cnt: Int, num: [String]) -> Void {
    if cnt == numCnt {
        let num = num.joined()
        if num > number && Int(num)! <= answer {
            answer = Int(num)!
        }
        return
    }
    
    for idx in 0..<numCnt {
        if !check[idx] {
            check[idx] = true
            DFS(cnt: cnt + 1, num: num + [numberArray[idx]])
            check[idx] = false
        }
    }
}

DFS(cnt: 0, num: [])

if answer == INF {
    print(0)
} else {
    print(answer)
}
profile
JUST DO IT

0개의 댓글