본문 바로가기

알고리즘(백준 등) 공부

SWEA 10726. 이진수 표현

자연수 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