[백준/JAVA] 1247번 부호

정은아·2024년 5월 1일

[알고리즘] 수학 모음

목록 보기
71/152
post-thumbnail

문제

내 풀이

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

public class Main extends Exception {
    public static void main(String[] args) throws IOException {
        // 3개의 테스트 셋이 주어진다.
        // 각 셋 첫째 줄에는 N이 주어진다.
        // 둘 째줄 부터 N개의 줄에 걸쳐 각 정수가 주어진다.

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int numA = Integer.parseInt(br.readLine());
        BigInteger sum = BigInteger.valueOf(0);
        String answer = "";

        for (int i = 0; i < numA; i++) {
            BigInteger number = new BigInteger(br.readLine());
            sum = sum.add(number);

            if (sum.equals(BigInteger.valueOf(0))) {
                answer = "0";
            } else if (sum.compareTo(BigInteger.valueOf(0)) == 1) {
                answer = "+";
            } else {
                answer = "-";
            }
        }

        sb.append(answer).append("\n");

        int numB = Integer.parseInt(br.readLine());
        sum = BigInteger.valueOf(0);
        answer = "";

        for (int i = 0; i < numB; i++) {
            BigInteger number = new BigInteger(br.readLine());
            sum = sum.add(number);

            if (sum.equals(BigInteger.valueOf(0))) {
                answer = "0";
            } else if (sum.compareTo(BigInteger.valueOf(0)) == 1) {
                answer = "+";
            } else {
                answer = "-";
            }
        }

        sb.append(answer).append("\n");

        int numC = Integer.parseInt(br.readLine());
        sum = BigInteger.valueOf(0);
        answer = "";

        for (int i = 0; i < numC; i++) {
            BigInteger number = new BigInteger(br.readLine());
            sum = sum.add(number);

            if (sum.equals(BigInteger.valueOf(0))) {
                answer = "0";
            } else if (sum.compareTo(BigInteger.valueOf(0)) == 1) {
                answer = "+";
            } else {
                answer = "-";
            }
        }

        sb.append(answer).append("\n");

        System.out.println(sb.toString());
    }
}

느낀점

for문 안에서 BigInteger를 쓰는 방법과 언제 써야하는지 잘 생각해야한다.
그리고 if문 안에서 두 수를 비교할 때 쓰는 메서드도 반드시 숙지해야한다.

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글