티스토리 뷰

반응형

문제

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)
}
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함