알고리즘 연습/기초 (입출력 등)

[🥉2 / 백준 11816 / 파이썬] 8진수, 10진수, 16진수

김세진 2022. 3. 25. 00:45
반응형

 

 

11816번: 8진수, 10진수, 16진수

첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다.

www.acmicpc.net

 

문제

정수 X가 주어진다. 정수 X는 항상 8진수, 10진수, 16진수 중에 하나이다.

8진수인 경우에는 수의 앞에 0이 주어지고, 16진수인 경우에는 0x가 주어진다.

X를 10진수로 바꿔서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다.

출력

첫째 줄에 입력받은 X를 10진수로 바꿔서 출력한다.

 

예제 입력 1

10

예제 출력 1

10

예제 입력 2

010

예제 출력 2

8

예제 입력 3

0x10

예제 출력 3

16

예제 입력 4

0x3f6

예제 출력 4

1014

 

풀이

 

int 함수를 사용하여 10진수 외의 숫자들을 10진수로 쉽게 변환할 수 있다.

x가 존재하면 16진수, x가 없을 때 맨 앞의 숫자가 0이면 8진수, 나머지는 10진수로 출력하도록 하자.

 

a = input()
if a[1]=='x':
    print(int(a[2:],16))
elif a[0]=='0':
    print(int(a[1:],8))
else:
    print(a)
반응형