Develop/Algorithm
[백준/Kotlin] 1550번: 16진수
노이지
2021. 6. 30. 17:21
반응형
문제
16진수 수를 입력받아서 10진수로 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다.
출력
첫째 줄에 입력으로 주어진 16진수 수를 10진수로 변환해 출력한다.
예제
예제 입력 1 | 예제 출력1 |
A | 10 |
풀이
입력받은 문자열의 첫번째 자리수부터 10진수로 변환하여 result 변수에 더한다. 이 때 알파벳(A~F)인 경우와 숫자인 경우를 따로 처리한다.
import java.io.*
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val input = br.readLine().toCharArray()
var result = 0
for (c in input) {
if (c > '9') { //알파벳인 경우
result = result * 16 + (c - 'A' + 10)
}
else { //숫자인 경우
result = result * 16 + (c - '0')
}
}
//10진수로 변환한 값 출력
println(result)
}
다른 사람의 풀이
입력받은 문자열을 16진수 숫자로 인식하여 바로 10진수 숫자로 변환한다.
fun main() {
val input = readLine()?.toInt(16)
//10진수로 변환한 값 출력
println(input)
}
반응형