입력:
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
알고 나면 한 줄로 간편하게 코딩할 수 있는 문제였습니다.
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp 기초 100제]1036 : [기초-출력변환] 영문자 1개 입력받아 10진수로 출력하기(풀이 성공) (0) | 2020.12.28 |
---|---|
[CodeUp 기초 100제]1035 : [기초-출력변환] 16진 정수 1개 입력받아 8진수로 출력하기(풀이 성공) (0) | 2020.12.26 |
[CodeUp 기초 100제]1033 : [기초-출력변환] 10진 정수 입력받아 16진수로 출력하기2(풀이 성공) (0) | 2020.11.26 |
[CodeUp 기초 100제]1032 : [기초-출력변환] 10진 정수 입력받아 16진수로 출력하기1(풀이 성공) (0) | 2020.11.18 |
[CodeUp 기초 100제]1031 : [기초-출력변환] 10진 정수 1개 입력받아 8진수로 출력하기(풀이 성공) (0) | 2020.11.16 |