본문 바로가기
Algorithm/CodeUp

[CodeUp 기초 100제]1034 : [기초-출력변환] 8진 정수 1개 입력받아 10진수로 출력하기(풀이 성공)

by 전봇대파괴자 2020. 12. 23.

 


입력:

8진 정수 1개가 입력된다.

 

 

출력:

10진수로 바꾸어 출력한다.


내 코드:

x = input()
x = '0o' + x
print(int(x, 8))

 

또 다른 풀이:

print(int(input(), 8))

 

Comment: 이번에는 8진수를 10진수로 출력하는 문제입니다. 1032번 문제에서 다룬 것처럼, 진수를 변환하는 방법은 여러 가지가 있습니다. 이 문제의 핵심은 2/8/16진수를 10진수로 변환하는 방법입니다. 

b = '0b10111' # 23의 2진수
o = '0o27' # 23의 8진수
h = '0x17' # 23의 16진수

# 10진수로 변환하기
int(b, 2) # 23
int(o, 8) # 23
int(h, 16) # 23

 숫자 앞에 붙은 0b, 0o, 0x가 거슬립니다. 입력값에 저게 붙을 수는 없기 때문에 첫 풀이에서는 굳이 0o를 붙여서 풀었습니다만, 그럴 필요는 없습니다. 

# 숫자만으로도 10진수로 변환 가능
print(int('10111', 2)) # 23
print(int('27', 8)) # 23
print(int('17', 16)) # 23

알고 나면 한 줄로 간편하게 코딩할 수 있는 문제였습니다.