CodeUp(코드업) 풀이 (1031번)

이 포스팅은 codeup.kr(코드업)의 문제를 Python3로 풀고 정리한 내용입니다.


1031 : [기초-출력변환] 10진수 한 개 입력받아 8진수로 출력하기

문제 설명

10진수를 입력받아 8진수로 출력하는 프로그램을 작성해보자.

입력

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

출력

입력 받은 10진수를 8진수로 바뀌어 출력한다.

입력 예시

10

출력 예시

12


내 풀이1

oct 함수를 이용하는 방법

1
2
3
4
5
6
try:
num = int(input());
answer = oct(num);
print(answer[2:]);
except Exception as e:
print(e);
  • 파이썬에서 기본 입력은 10진수이다.
  • 10진수 -> 8진수 변환을 위해
    파이썬의 내장 함수인 oct 함수를 사용하였다.
  • 형식: oct(10진수 정수) -> 8진수
  • 8진수로 변환할 경우, 0o가 앞에 붙기 때문에 입출력 예시처럼 10을 입력했을 경우 12변환되지 않고, 0o12로 변환된다.
1
print(answer[2:]);
  • 파이썬 문자열의 슬라이싱을 이용하여,
    8진수 문자열의 접두어인 0o를 제외하고 2번째 인덱스부터 출력한다.

내 풀이2

format 함수를 이용하는 방법

1
2
3
4
5
try:
num = int(input());
print(format(num, 'o'));
except Exception as e:
print(e);
  • format() 내장함수를 이용하면, 다른 진수의 문자열로 바꿀 경우,
    접두어를 제외할 수 있다.

모범 답안

포매팅 문자열을 사용하는 방법

1
2
3
a=input()
n=int(a)
print('%o' % n) # '%포매팅 문자열' %변수
  • %o는 8진수를 나타내는 포매팅 문자열이다.
    모범답안의 경우, 포매팅 문자열인 %o를 이용하여 정수를 8진수로 출력해주었다.

참고링크