본문 바로가기
Algorithm/CodeUp

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

by 전봇대파괴자 2020. 11. 16.

입력:

10진수 1개가 입력된다.
단, 입력되는 정수는 int 범위이다.

 

 

출력:

8진수로 출력한다.


내 코드:

x=int(input())
print(oct(x)[2:])

 

 

또 다른 풀이:

x=int(input())
print('%o' % x)

# 또 다른 풀이
x = int(input())
print(format(x, 'o'))

 

Comment: 2, 8, 10, 16 진수 변환의 시작을 알리는 문제입니다. 10진수를 8진수로 변환하는 방법은 여러 가지가 있습니다. 우선 첫 번째 코드에 쓰였던 oct 함수를 보겠습니다. 

oct(10) # 10진수 10을 넣어본다
>> '0o12'

x=oct(10)
print(x[2:])
>> '12'

 

python은 10진수를 2진수, 8진수, 16진수로 변환할 수 있는 내장함수를 가지고 있습니다. oct는 그 중 10진수를 8진수로 변환하는 함수입니다. 하지만 변환되었을 때 앞에 불필요한 숫자와 알파벳이 포함되어 있기에 슬라이싱을 해주어야 합니다. 

 

두 번째는 '%o'를 사용하는 방법입니다. print('%o' % 변환하고 싶은 10진수)의 형식으로 변환합니다.

print('%o'% 10)
>> '12'

 

마지막으로 format을 사용하는 방법입니다. format(변환하고 싶은 10진수, 'o')의 형식으로 변환합니다. 

print(format(10, 'o'))
>> '12'