Tiny Bunny
본문 바로가기
Algorithm/Python

[SWEA #12918] 이진수

by nowag 2024. 2. 22.

문제

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