SW Expert Academy- 이진수 표현
문제 링크
문제 입력
6
4 0
4 30
4 47
5 31
5 62
4 1
#1 OFF
#2 OFF
#3 ON
#4 ON
#5 OFF
#6 OFF
문제 풀이
import sys
# 모두 1인지 확인하는 함수
def check(bit):
if bit.count('1') == len(bit):
return True
return False
sys.stdin = open('input.txt', 'rt')
T = int(input())
for t in range(T):
n = list(map(int, input().split()))
idx = n[0]
bit = bin(n[1]).replace('0b', '')[-idx:]
if len(bit) < idx:
bit += '0' * (idx - 1)
bit = bit[::-1]
if check(bit):
print(f"#{t + 1} ON")
else:
print(f"#{t + 1} OFF")
bin(n) 함수를 통해서 이진수를 만들 수 있습니다. 하지만 0b 가 앞에 붇으니 사용하려면 이를 떼줘야 합니다.
또 예외처리를 해줄 필요가 있는 부분이 있습니다.
만약 4 1 이라는 테스트 케이스가 들어오면 4 0001 이므로 OFF 가 되어야 합니다.
해당 사항을 유의해주셔야 pass 처리가 됩니다.
# SW Expert 이진수표현 python 파이썬 예제
728x90
'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > SW Expert Academy' 카테고리의 다른 글
[SW10580] 전봇대 (0) | 2022.05.29 |
---|---|
[SW10570] 제곱 팰린드롬 수 (0) | 2022.05.29 |
[SW10804] 문자열의 거울상 (0) | 2022.05.29 |
[SW10912] 외로운 문자 (0) | 2022.05.29 |
[SW14361] 숫자가 같은 배수 (0) | 2022.05.29 |