happy coding
[java] 27960. 사격 내기 본문
이진수로 변환하는 이유 : 주어진 과녁 점수를 비트 단위로 나태내서, 각 과녁별로 해당하는 비트를 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