BOJ/Python

백준 1550번 16진수 파이썬

띵지니어 2021. 7. 20. 20:37
반응형

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

 

1550번: 16진수

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

www.acmicpc.net

 

 

포맷팅만 알면 사실 되게 간단했다.

x = input()
print(int(x , 16))

 

포맷팅을 잘 활용하고 내장함수를 이용하면 간단하게 나타낼수있다.

 

하지만, 처음에 나는 진수를 바꿔라 하는 문제를 봤을 때는 길게 알고리즘을 짰었다

 

예를들어 10진수 -> 2진수로 바꾸라는 함수를 만들라고 했을땐

 

def decitobin(n):                    # 10진수를 2진수로
    if n == 1:
        return '1'                   #  1 -> 1

    binary = ""
    while True:
        if n % 2 == 0:
            binary += '0'            # 2로 나눠지면 0
        else:
            binary += '1'            # 2로 나눠지지 않으면 1
        n //= 2                      # 2로 나누기 반복
        if n == 1:                   # 1이 된다면 마지막 1
            binary += '1'
            return binary[::-1]      # 문자열 역배열

 

 

이렇게나 길게 짜서 해결을 하였다.

결론은 저렇게 간단하게 짤 수 있는 걸 나는 한 시간이나 더 생각하고 알아버렸다.

반응형
목차(index)