숫자 n이 주어졌을 때 8진법과 16진법으로 바꾸는 문제이다.
def eight(n):
L = []
while n > 0:
if (n / 8) > 0:
L.append(n%8)
n = n//8
s = 10**(len(L)-1)
resert = 0
L.reverse()
for i in L:
resert += i * s
s = s // 10
return resert
def sixteen(n):
a = ['A', 'B', 'C', 'D', 'E', 'F']
string = ''
while n > 0:
if ((n%16) < 10):
string += str(n%16)
n = n//16
else:
string += str(a[(n%16)-10])
n = n//16
# reversed_string = "".join(reversed(string))
reversed_string = string[ : : -1]
return reversed_string
n = int(input())
print(eight(n), sixteen(n))
나는 다음과 같이 함수로 만들어 호출했다.
16진범은 알파벳이 들어가기 때문에 str로 받은뒤 뒤집어 return했다.
8진법은 조금 무식한 방법을 사용했는데 이것도 똑같이 str으로 받은 뒤 뒤집어 주는게 시간을 덜 잡아먹을거 같다.
'<코딩테스트> > [기타 문제-기초]' 카테고리의 다른 글
[006]가장 큰 나머지 (0) | 2024.09.15 |
---|---|
[005] ID만들기 (1) | 2024.09.15 |
[004] 아스키코드 (1) | 2024.09.12 |
[002] 등차수열 (0) | 2024.09.11 |
[001] 비밀번호 찾기 (0) | 2024.09.11 |