[백준] 방 번호 (1475)
문제 설명
다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
입력
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.
출력
첫째 줄에 필요한 세트의 개수를 출력한다.
테스트 케이스1
입력 | 출력 |
---|---|
9999 | 2 |
문제 풀이 (KOTLIN)
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val str = readLine()
var set = IntArray(10) { 0 }
str.forEach {
val num = it.toInt() - 48
if (num == 6 || num == 9) {
if (set[6] < set[9]) set[6]++
else if (set[6] > set[9]) set[9]++
else set[num]++
}
else set[num]++
}
println(set.max())
}
문제 풀이 (SWIFT)
let str = readLine()!
var N = Int(str)!
var counter = Array(repeating: 0, count: 10)
for _ in 0..<str.count {
let num = N % 10
N /= 10
if num == 6 || num == 9 {
if counter[6] > counter[9] {
counter[9] += 1
} else {
counter[6] += 1
}
} else {
counter[num] += 1
}
}
print(counter.max()!)