프로그래밍 문제 풀이/코드업(파이썬)

코드업[CodeUp] Python 기초 100제 [6081번]

태은코딩 2024. 1. 11. 14:29

6081 : [기초-종합] 16진수 구구단 출력하기(py)

문제설명
16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운
영일이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다.

A, B, C, D, E, F 중 하나가 입력될 때,
1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)

 

입력값
16진수로 한 자리 수가 입력된다.
단, A ~ F 까지만 입력된다.
출력값
입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다.
계산 결과도 16진수로 출력해야 한다.

 

입력 예시
B
출력 예시
B*1=B
B*2=16
B*3=21
B*4=2C
B*5=37
B*6=42
B*7=4D
B*8=58
B*9=63
B*A=6E
B*B=79
B*C=84
B*D=8F
B*E=9A
B*F=A5

 

정답 및 가능한 정답

a=input()
a=int(a,16)
for i in range(1,16):
    print("%X*%X=%X" %(a,i,a*i))
n = int(input(), 16)
for i in range(1, 16) :
  print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')

 

해설

16진수를 10진수로 바꾸는 방법
int(a, b)는 문자열 a가 b에 해당하는 진수일 때 숫자(10진수)로 바꿔줍니다.
int 함수를 이용해서 x= int("A", 16) 
x는 10이 된다.

range() 범위 설정
16진수의 F는 10진수로 15이다. 범위를 range(1,16)으로 1부터 F까지로 설정

여러 개 변수 포메팅
print("%d %d" %(a, b))    **(a, b)처럼 괄호 안에 넣는다.

여러 개 변수 포메팅을 
print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')처럼
3개의 변수들을 각각 포메팅 하고 sep=""로 간격 없이 출력할 수도 있다.

위의 조건들을 고려하여 문자를 입력받고, int 함수로 10진수로 바꾼 다음 
for 함수를 이용해 range(1,16) 범위에서
10진수들을 %X 16진수 대문자로 포메팅 하여 출력할 수 있다.