난이도 : D2
문제번호 : 5185
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
16진수 1자리는 2진수 4자리로 표시된다. |
입력
첫 줄에 테스트케이스의 수 T가 주어진다. 1<=T<=50 |
출력
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다. |
예시
입력 | 출력 |
3 4 47FE 5 79E12 8 41DA16CD |
#1 0100011111111110 #2 01111001111000010010 #3 01000001110110100001011011001101 |
2. 문제풀이
파이썬에서 지원하는 기능을 이용하면 바로 풀 수 있지만 취지에 맞지않으니까 정석대로 풀어보았다. |
3. 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#D2 5185 이진수
hexa_to_decimal = {'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F':15}
for t in range(int(input())):
N, octa = input().split()
answer = ''
#들어온 16진수만큼 반복
for i in octa:
# hexa to decimal 하기
if '0'<= i <= '9':
temp = int(i)
else:
temp = hexa_to_decimal[i]
#16진수는 2진수 4글자이므로 8을 이용함
num = 8
for _ in range(4):
#비트연산해서 값이 나오면 1
if temp & num:
answer += '1'
#값이 안나오면 0
else: answer += '0'
#비트연산하는 값을 반절 줄이기
num >>= 1
print('#{} {}'.format(t+1, answer))
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
최대상금 Python(SW Expert Academy) (2) | 2020.05.16 |
---|---|
이진수2 Python(SW Expert Academy) (0) | 2020.05.15 |
이진탐색 Python(SW Expert Academy) (0) | 2020.05.13 |
이진탐색 Python(SW Expert Academy) (0) | 2020.05.12 |
수열 편집 Python(SW Expert Academy) (0) | 2020.04.17 |
댓글