# 3. APS

[2021.04.13] SWEA # Python_D3_10726_이진수 표현

둥굴둥굴둥굴레차 2021. 4. 13. 09:40

 

🤴 [문제]

정수 N, M 이 주어질 때, M의 이진수 표현의 마지막 N 비트가 모두 1로 켜져 있는지 아닌지를 판별하여 출력하라.

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXRSXf_a9qsDFAXS&categoryId=AXRSXf_a9qsDFAXS&categoryType=CODE&problemTitle=%EC%9D%B4%EC%A7%84%EC%88%98+%ED%91%9C%ED%98%84&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

## M을 2로 나누었을 때, 나머지가 1이 나오면 비트가 ON되어 있다고 접근하였다.
## 만약 1이 아니라면 OFF

def isOn():
    global N, M
    for i in range(N):
        # 만약 M값을 2로 나누었을 때 나머지가 1 이 아니라면
        # 즉, 나머지가 0이라면
        if not M % 2:
            return False
        # M값 초기화
        M //= 2
    # M값을 2로 나누었을 때 나머지가 1 이라면
    else:
        return True

T = int(input())

for tc in range(1, T+1):
    N, M = map(int, input().split())
    # 만약 isOn에서 True값이 리턴되면 ON
    # False값이 리턴되면 OFF
    result = 'ON' if isOn() else 'OFF'
    print('#{} {}'.format(tc, result))