[백준] 집 주소 (1284)
문제 설명
입력 및 출력
» 입력
- 호수판에 들어갈 숫자 N의 범위는 1 ≤ N ≤ 9999 이다. 입력은 마지막에 0이 들어오기 전까지 계속해서 줄 단위로 주어진다. 또한, 마지막의 0은 처리하지 않는다.
» 출력
- 각 입력마다 얼마만큼 너비를 차지하는지 정수로 출력하면 된다. 각 출력은 줄바꿈으로 구분되어야한다.
예제 입출력
입력 | 출력 |
---|---|
120 5611 100 0 |
13 15 14 |
문제 풀이 (KOTLIN)
import java.util.Scanner
fun main(args: Array<String>) = with(Scanner(System.`in`)) {
var address = next()
while (address != "0") {
var size = 2 + address.length - 1
address.forEach {
size += when (it) {
'1' -> 2
'0' -> 4
else -> 3
}
}
println(size)
address = next()
}
}
문제 풀이 (SWIFT)
while true {
let number = readLine()!.map { Int(String($0))! }
if number.count == 1 && number[0] == 0 {
break
}
print(
number.reduce(0) { (count: Int, element: Int) -> Int in
return count + (element == 0 ? 4 :
(element == 1 ? 2 : 3))
} + number.count + 1
)
}