자연수 N과 10진수 숫자가 주어질 때, 10진수 숫자를 2진수로 표현했을 때 끝의 N비트가 모두 1인지 아닌지를 판별하는 문제이다.
끝의 N이 모두 1이려면 2로 N번 나누면서 모두 나머지가 1이어야 한다.
outer: for (int tc = 1; tc <= T; tc++) {
sb.append('#').append(tc).append(' ');
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken()), m = Integer.parseInt(st.nextToken());
for(int i=0; i<n; i++) {
if(m % 2 == 0) {
sb.append("OFF\n");
continue outer;
}
m /= 2;
}
sb.append("ON\n");
}
결과 코드는 다음과 같다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
outer: for (int tc = 1; tc <= T; tc++) {
sb.append('#').append(tc).append(' ');
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken()), m = Integer.parseInt(st.nextToken());
for(int i=0; i<n; i++) {
if(m % 2 == 0) {
sb.append("OFF\n");
continue outer;
}
m /= 2;
}
sb.append("ON\n");
}
br.close();
System.out.print(sb);
}
}'알고리즘(백준 등) 공부' 카테고리의 다른 글
| SWEA 10761. 신뢰 (0) | 2026.06.22 |
|---|---|
| SWEA 10762. 사탕 나누기 (0) | 2026.06.09 |
| SWEA 10804. 문자열의 거울상 (0) | 2026.06.09 |
| SWEA 10912. 외로운 문자 (0) | 2026.06.08 |
| SWEA 10908. 짝수인 이항 계수 (0) | 2026.06.07 |