[백준] 방 번호 (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()!)

카테고리:

업데이트: