https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWTtiyIqd_wDFAVT
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
16진수를 2진수로 바꾸는 연산 자체는 쉬웠지만 16진수를 리스트로 가져오면 숫자와 문자형이 섞이는데 섞인 숫자와 문자형을 어떻게 따로 인식하고 가져오는지가 문제였다.
파이썬에는 문자열이 숫자로 이루어졌는지 확인하는 isdigit을 통해 쉽게 확인할 수 있다.
사용법
1) str.isdigit("문자열")
2) "문자열".isdigit()
def quater(num):
quaternary=[]
for _ in range(4):
p=num%2 #나머지
num=num//2 #몫
quaternary.append(str(p))
quaternary.reverse()
return ''.join(quaternary)
T=int(input()) #테케
for t in range(1,T+1):
N,hex_num=input().split()
result=''
for n in hex_num:
if n.isdigit(): #정수형이라면
result+=quater(int(n))
else: #문자형이라면
n=ord(n)-ord('A')+10
result+=quater(n)
print("#{} {}".format(t,result))
이렇게 풀이를 하고 통과하였긴한데 더 간단한 방법이 있는 것을 보았다.
T=int(input()) #테케
for t in range(1,T+1):
N,hex_str=input().split()
result=''
for ch in hex_str:
#bin은 0b를 숫자 앞에 붙이므로 [2:] 출력
#zfill()은 문자열 형태에서 지정한 길이만큼 0을 채움
#int(ch, 16)->'A' 같은 16진수 문자를 10진수로 변환
result+=bin(int(ch,16))[2:].zfill(4)
print("#{} {}".format(t,result))
'coding test > SW Expert Academy' 카테고리의 다른 글
| [Python] 1855번 영준이의 진짜 BFS (1) | 2025.12.14 |
|---|---|
| 1220. [S/W 문제해결 기본] 5일차 - Magnetic (0) | 2025.05.23 |
| 4861. [파이썬 S/W 문제해결 기본] 3일차 - 회문 (0) | 2025.05.20 |
| 1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드 (0) | 2025.05.19 |
| 4881. [파이썬 S/W 문제해결 기본] 5일차 - 배열 최소 합 (0) | 2025.05.12 |