# 문제 설명
- 구현문제
- 케이스 구분 후 직접 코딩, 범위가 좁아서 문자 하나씩 순회해도 됨
class Solution {
func intToRoman(_ num: Int) -> String {
var resultStrings: [String] = []
var str = String(num).reversed()
var tens = 0
for char in str {
let num = char.wholeNumberValue!
switch tens {
case 0:
if num == 4 {
resultStrings.append("IV")
break
} else if num == 9 {
resultStrings.append("IX")
break
} else if num <= 3{
resultStrings.append(String(Array(repeating: "I", count: num)))
break
} else if num >= 5 && num < 9 {
resultStrings.append("V" + String(Array(repeating:"I", count: num - 5)))
}
case 1:
if num == 4 {
resultStrings.append("XL")
break
} else if num == 9 {
resultStrings.append("XC")
break
} else if num <= 3{
resultStrings.append(String(Array(repeating:"X", count: num)))
break
} else if num >= 5 && num < 9 {
resultStrings.append("L" + String(Array(repeating:"X", count: num - 5)))
}
case 2:
if num == 4 {
resultStrings.append("CD")
break
} else if num == 9 {
resultStrings.append("CM")
break
} else if num <= 3{
resultStrings.append(String(Array(repeating:"C", count: num)))
break
} else if num >= 5 && num < 9 {
resultStrings.append("D" + String(Array(repeating:"C", count: num - 5)))
}
case 3:
resultStrings.append(String(Array(repeating: "M", count: num)))
default:
break
}
tens += 1
}
return resultStrings.reversed().reduce("", {$0 + $1})
}
}