happy coding

[java] 27960. 사격 내기 본문

coding study/baekjoon

[java] 27960. 사격 내기

yeoonii 2023. 7. 25. 00:46

이진수로 변환하는 이유 : 주어진 과녁 점수를 비트 단위로 나태내서, 각 과녁별로 해당하는 비트를 1로 표시되는 형태로 만든다. 이렇게 하면 해당하는 과녁을 맞혔는지 여부를 간단하게 확인할 수 있다고 한다.

import java.io.*;
import java.util.*;
import java.lang.*;

public class Main {
    public static void main(String[] args) throws IOException {
        //A와 B의 영점 사격 총합 점수 입력 받음, 구분은 공백으로.
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());

        //a와 b를 이진수로 변환
        String bin_a = Integer.toBinaryString(a);
        String bin_b = Integer.toBinaryString(b);

        //XOR 이용해서 c계산
        int output = Integer.parseInt(Integer.toBinaryString(a^b),2);
        System.out.println(output);
    }
}

이진수 관련해서 함수를 몰라서 처음에 hashmap을 이용해서 엄청난 길이의 코드를 작성하다가 뒤엎었다. 비트를 이용하니 짧다..행복

'coding study > baekjoon' 카테고리의 다른 글

[java] 27465. 소수가 아닌 수  (0) 2023.07.25
[java] 27736. 찬반 투표  (0) 2023.07.25
[java] 28014. 첨탑 밀어서 부수기  (0) 2023.07.24
[java] 28061. 레몬 따기  (0) 2023.07.24
[java] 1110. 더하기 사이클  (0) 2023.07.24
Comments