16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운 영일(01)이는 16진수끼리 곱하는 16진수 구구단에 대해서 궁금해졌다.
A, B, C, D, E, F 중 하나가 입력될 때, 1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)
입력
16진수로 한 자리 수가 입력된다.
단, A ~ F 까지만 입력된다.
B
출력
입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다.
계산 결과도 16진수로 출력해야 한다.
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
<풀이>
더보기
내가 쓴 풀이
num = input()
hex_num = int(num,16)
for i in range(1, 16):
print('{} * {} = {}'.format(num,hex(i)[2:].upper(),hex(hex_num*i)[2:].upper()))
input()으로 입력받으면 string형이 되는데 string형을 16진수로 바꾸는 방법을 찾지 못해 헤맸었다.
검색해보니 int(변수, 진수)를 사용하면 해당 진수로 변환이 가능하다더라.
그리고 리스트 인덱스를 사용해서 필요없는 부분(0x)을 제외하고 출력하도록 했다.
강의 풀이
alpha = input()
for i in range(1,16):
print( '%s*%s=%s' % (alpha, hex(i)[2:].upper(), hex(int(alpha, 16)*i)[2:].upper()) )
<풀이 비교>
와... 강의 풀이랑 문자열 출력 방법만 다르다.
물론 문자를 16진수로 변환하는 방법을 몰라 그 부분에 대해서는 검색을 했지만 나머지는 다 내가 한 건데.
여태 코딩테스트를 너무 어렵게 생각하고 먼 미래라 생각했는데 문제를 하나하나 풀어보니 너무 재밌다.
아직 시간이 오래 걸리기도 하고 검색도 하지만 계속 연습하다 보면 실력이 쑥쑥 늘 것 같다.
'Python > CodeUp' 카테고리의 다른 글
코드업 기초 100제 84번 - 빛 섞어 색 만들기 (0) | 2021.11.22 |
---|---|
코드업 기초 100제 83번 - 3 6 9 게임의 왕이 되자 (0) | 2021.11.22 |
코드업 기초 100제 81번 - 주사위를 2개 던지면? (0) | 2021.11.22 |
코드업 기초 100제 80번 - 언제까지 더해야 할까? (0) | 2021.11.22 |
코드업 기초 100제 79번 - 원하는 문자가 입력될 때까지 반복 출력하기 (0) | 2021.11.22 |