<링크>
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 |
---|