알고리즘/swea

(SWEA) 10726. 이진수 표현

흰색텀블러 2025. 1. 20. 22:23

<링크>

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXRSXf_a9qsDFAXS

 

SW Expert Academy

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

swexpertacademy.com

 

<문제>

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

 

<입력>

  • 첫 번째 줄에 테스트 케이스의 수 TC가 주어진다.
  • 이후 TC개의 테스트 케이스가 새 줄로 구분되어 주어진다.
  • 각 테스트 케이스는 다음과 같이 구성되었다.
  • 첫 번째 줄에 정수 N, M이 주어진다. (1 ≤ N ≤ 30 , 0 ≤ M ≤ 10^8)

<출력>

  • 각 테스트 케이스마다 한 줄씩 마지막 N개의 비트가 모두 켜져 있다면 ON 아니면 OFF 를 출력하라.

<코드 - java>

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
	
	public static void main(String[] args) throws Exception{
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		int test_case = Integer.parseInt(in.readLine());
		for (int tc = 1; tc<=test_case ; tc++) {
			StringTokenizer st = new StringTokenizer(in.readLine());

			int n = Integer.parseInt(st.nextToken());
			int m = Integer.parseInt(st.nextToken());
			
			int lastBit = ( ( 1 << n ) ) -1;
			if (lastBit == (m &lastBit)) {
				System.out.println("#" + tc + " " + "ON");
			}else {
				System.out.println("#" + tc + " " + "OFF");
			}
		}
	}
}

 

비트마스킹으로 공부중!!

'알고리즘 > swea' 카테고리의 다른 글

(SWEA) 1230. [S/W 문제해결 기본] 8일차 - 암호문3  (0) 2025.01.21