문제
16진수 1자리는 2진수 4자리로 표시된다.
N자리 16진수가 주어지면 각 자리 수를 4자리 2진수로 표시하는 프로그램을 만드시오.
단, 2진수의 앞자리 0도 반드시 출력한다.
예를 들어 47FE라는 16진수를 2진수로 표시하면 다음과 같다.
0100011111111110
입력
첫 줄에 테스트케이스의 수 T가 주어진다. 1<=T<=50
다음 줄부터 테스트 케이스의 별로 자리 수 N과 N자리 16진수가 주어진다. 1<=N<=100
16진수 A부터 F는 대문자로 표시된다.
출력
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다.
내가 쓴 코드
# 16진수 -> 2진수
#
# arr = [’0000’, ‘0001’, ‘0010’, ‘0010’, …, ‘1111’] → 2진수
# idx 0 1 2 3 … 15 → 10진수
#
# → arr[7] + arr[3]
T = int(input())
for t in range(T):
N, ox = input().split()
# 2진수
arr_t = ['0000','0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111']
# 16진수
arr_s = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']
dec = [] # 10진수 변환
ox = list(ox)
for i in ox:
d = arr_s.index(i)
dec.append(d)
print(f'#{t+1}', end=' ')
for i in dec:
print(arr_t[i], end='')
print()
출력 결과
#1 0100011111111110
#2 01111001111000010010
#3 01000001110110100001011011001101
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
| [SWEA #1926] 간단한 369게임 (1) | 2024.02.22 |
|---|---|
| [SWEA #1240] 단순 2진 암호코드 (1) | 2024.02.22 |
| [BOJ #2577] 숫자의 개수 (0) | 2024.02.21 |
| [BOJ #2309] 일곱 난쟁이 (0) | 2024.02.21 |
| [BOJ #1966] 프린터 큐 (0) | 2024.02.21 |