Notice
Recent Posts
Recent Comments
05-17 21:28
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Byeol Lo

N1052 - 물병 본문

Algorithm/Boolean Algebra

N1052 - 물병

알 수 없는 사용자 2024. 2. 12. 19:28
import java.util.Scanner;


public class Main {
    static final Scanner SC = new Scanner(System.in);

    public static void main(String[] args) {
        int n = SC.nextInt(), k = SC.nextInt(), result, cnt = 0, tmp = 0;
        String binaryNumber = Integer.toBinaryString(n);

        if(n <= k || binaryNumber.equals("1" + "0".repeat(binaryNumber.length() - 1))) {
            result = 0;
        } else {
            for(int i=0; i<binaryNumber.length(); i++) {
                if(binaryNumber.charAt(i) == '1') {
                    cnt++;
                    if(cnt == k) tmp = i;
                }
            }
            if(cnt <= k) result = 0;
            else {
                result = (n &
                        Integer.parseInt("1".repeat(tmp + 1) + "0".repeat(binaryNumber.length() - tmp - 1), 2)) +
                        Integer.parseInt("1" + "0".repeat(binaryNumber.length() - tmp - 1), 2) - n;

            }
        }

        System.out.print(result);
    }
}
Comments