Java/Java 알고리즘

백준 2935번 소음 JAVA 구현해보기

kimc 2022. 6. 3. 23:30

```

백준 2935번 소음 JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1. 백준 2935번 풀이

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

 

2935번: 소음

수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게

www.acmicpc.net

백준 2935번 소음 은

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

 

최대 100자리의 10의 배수 A와 B

그리고 + 혹은 * 인 연산자 OP 가 주어질 때

A+B 혹은 A*B를 출력해주면 됩니다.


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

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


입력을 받고

0의 개수에 따라서

조건에 맞춰서 1과  0 혹은 2를 조합해서 출력해주면 됩니다.

 

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

public class Main {

    public static void main(String[] args) throws IOException {
        final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        final String input01 = br.readLine();
        final String input02 = br.readLine();
        final String input03 = br.readLine();
        System.out.print(solution(input01, input02, input03));
    }

    public static String solution(String lhs, String operator, String rhs) {

        final int lhsZero = lhs.split("0", -1).length - 1;
        final int rhsZero = rhs.split("0", -1).length - 1;


        StringBuilder sb = new StringBuilder();
        if (operator.equals("*")) {
            sb.append("1").append("0".repeat(lhsZero + rhsZero));
        } else if (operator.equals("+")) {
            if (lhsZero == rhsZero) {
                sb.append("2").append("0".repeat(lhsZero));
            } else {
                final int biggerZero = Math.max(lhsZero, rhsZero);
                final int smallerZero = Math.min(lhsZero, rhsZero);
                sb
                        .append("1")
                        .append("0".repeat(biggerZero - smallerZero - 1))
                        .append("1")
                        .append("0".repeat(smallerZero));
            }
        }

        return sb.toString();
    }
}

// https://codemasterkimc.tistory.com

 

 

읽어주셔서 감사합니다

 

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

 

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

 


 

728x90