[백준, BOJ 1550] 16진수 (python)
Problem Solving/BOJ

[백준, BOJ 1550] 16진수 (python)

728x90

https://www.acmicpc.net/problem/1550

 

1550번: 16진수

첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다.

www.acmicpc.net


문제

16진수 수를 입력받아서 10진수로 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다.

출력

첫째 줄에 입력으로 주어진 16진수 수를 10진수로 변환해 출력한다.

예제 입력 1

A

예제 출력 1

10

hexa = input()
hexa_list = list(map(str, hexa))
hexa_list.reverse()

deci = 0
for i in range(len(hexa_list)):
    if ord(hexa_list[i]) >= 48 and ord(hexa_list[i]) <= 57: # 0~9라면
        deci += int(hexa_list[i]) * (16 ** i)
    else: # A~F라면
        deci += (ord(hexa_list[i]) - 55) * (16 ** i)

print(deci)
# 이 한 줄로도 가능
print(int(input(), 16))

 

728x90