Java/Java 알고리즘

백준 12813번 이진수 연산 JAVA 구현해보기

kimc 2022. 2. 3. 21:14

```

백준 12813번 이진수 연산 JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1.  백준 12813번 풀이

https://www.acmicpc.net/problem/12813

 

12813번: 이진수 연산

총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

 

백준 12813번 이진수 연산은 

난이도 브론즈 등급의 문제로서

 

100,000 비트의 이진수 A와 B 가 주어지면

A&B

A|B

A^B

~A

~B

를 출력하면 되는 문제입니다.

 


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


저는 문자열 값 하나하나 다 비교해서

해당 값에 따라서

 

AND 연산이면 &

OR 연산이면 |

XOR 연산이면 !=

~A 연산이면! A

~B 연산이면! B를 해서 출력했습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {

        String bitA = br.readLine();
        String bitB = br.readLine();

        StringBuilder andAB = new StringBuilder();
        StringBuilder orAB = new StringBuilder();
        StringBuilder xorAB = new StringBuilder();
        StringBuilder notA = new StringBuilder();
        StringBuilder notB = new StringBuilder();

        int bitALen = bitA.length();
        for (int i = 0; i < bitALen; i++) {
            boolean bitABool = bitA.charAt(i) == '1';
            boolean bitBBool = bitB.charAt(i) == '1';

            if (bitABool & bitBBool){
                andAB.append("1");
            }else {
                andAB.append("0");
            }

            if (bitABool | bitBBool){
                orAB.append("1");
            }else {
                orAB.append("0");
            }

            if (bitABool != bitBBool){
                xorAB.append("1");
            }else {
                xorAB.append("0");
            }

            if (!bitABool){
                notA.append("1");
            }else {
                notA.append("0");
            }

            if (!bitBBool){
                notB.append("1");
            }else {
                notB.append("0");
            }
        }

        System.out.println(andAB);
        System.out.println(orAB);
        System.out.println(xorAB);
        System.out.println(notA);
        System.out.println(notB);

    }
}

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90