문제 링크
https://swexpertacademy.com/main/code/problem/problemDetail.do
문제
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는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다.
예제
입력
3
4 47FE
5 79E12
8 41DA16CD
출력
#1 0100011111111110
#2 01111001111000010010
#3 01000001110110100001011011001101
정답 및 풀이
import sys
input = sys.stdin.readline
hex_to_bin = {
'0':'0000', '1':'0001', '2':'0010', '3':'0011',
'4':'0100', '5':'0101', '6':'0110', '7':'0111',
'8':'1000', '9':'1001', 'A':'1010', 'B':'1011',
'C':'1100', 'D':'1101', 'E':'1110', 'F':'1111'
}
t = int(input())
for tc in range(1, t+1):
n, hex_num = input().split()
result = ''
for h in hex_num:
result += hex_to_bin[h]
print(f"#{tc} {result}")
- import sys / input = sys.stdin.readline
- 입력을 빠르게 받기 위해 sys.stdin.readline을 사용한다.
- hex_to_bin = { ... }
- 16진수 한 글자를 4자리 2진수로 변환하기 위한 매핑 딕셔너리를 만든다.
- t = int(input())
- 테스트 케이스 개수를 입력받는다.
- for tc in range(1, t+1):
- 테스트 케이스 개수만큼 반복하면서 번호(tc)를 1부터 증가시키며 사용한다.
- n, hex_num = input().split()
- 변환할 16진수 길이 n과 실제 16진수 문자열 hex_num을 입력받는다.
- result = ''
- 변환된 2진수를 누적할 문자열을 빈 문자열로 초기화한다.
- for h in hex_num:
- 16진수 문자열의 각 문자를 하나씩 가져온다.
- result += hex_to_bin[h]
- 해당 문자를 2진수 문자열로 바꿔서 result에 이어 붙인다.
- print(f"#{tc} {result}")
- 테스트 케이스 번호와 변환된 2진수 문자열을 출력한다.
'SWEA' 카테고리의 다른 글
| [SWEA] 1974 : 스토쿠 검증 (Python/파이썬) (0) | 2025.11.19 |
|---|---|
| [SWEA] 2072 : 홀수만 더하기 (Python/파이썬) (0) | 2025.11.18 |
| [SWEA] 1204 : 최빈수 구하기 (Python/파이썬) (0) | 2025.11.18 |
| [SWEA] 2072 : 홀수만 더하기 (Python/파이썬) (0) | 2025.11.15 |
| [SWEA] 1859 : 백만 장자 프로젝트 (Python/파이썬) (1) | 2025.11.11 |