11816번: 8진수, 10진수, 16진수 (acmicpc.net)
접근 방법
혹시 파이썬으로 진법 변환을 해주는 내장 함수가 있는지 먼저 구글링 해보니, int()
내장 함수가 생각보다 강력한 기능을 가지고 있었다. 이를 활용하면 바로 풀 푸 있겠다고 판단했다.
일단, 문제에서
8진수인 경우에는 수의 앞에 0이 주어지고, 16진수인 경우에는 0x가 주어진다.
라고 정의했기 때문에 초기 입력값을 배열에 한 문자 단위로 잘라 넣어서 첫 번째, 두 번째 원소를 if문으로 검증하여 몇 진수 숫자인지 판단 후int()
함수로 진법 변환했다.
풀이 코드
X = str(input())
# 입력값을 한 문자 단위로 잘라서 리스트에 저장
arr = list(map(str, str(X)))
# 리스트 첫 번째와 두 번째 원소가 0x라면 16진수로 판단하여 10진수로 변환 후 출력
if arr[0] == '0' and arr[1] == 'x':
print(int(X, 16))
# 리스트 첫 번째 원소에 0이 있다면 8진수로 판단하여 10진수로 변환 후 출력
elif arr[0] == '0':
print(int(X, 8))
# 16진수, 8진수 모두 아니라면 10진수이므로 바로 출력
else:
print(int(X))
'Algorithm > Python' 카테고리의 다른 글
[python] 백준 11720: 숫자의 합 (0) | 2022.01.22 |
---|---|
[python] 백준 11653: 소인수분해 (0) | 2022.01.20 |