본문 바로가기
알고리즘/문제 풀이(출처 : 백준)

[JAVA] 부호_1247

by 이민우 2023. 1. 15.
728x90
반응형

출처 : https://www.acmicpc.net/problem/1247

 

1247번: 부호

총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거

www.acmicpc.net

 

부호 성공

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 256 MB 10293 3231 2854 36.491%

문제

N개의 정수가 주어지면, 이 정수들의 합 S의 부호를 구하는 프로그램을 작성하시오.

입력

총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거나 같다.

출력

총 3개의 줄에 걸쳐 각 테스트 셋에 대해 N개의 정수들의 합 S의 부호를 출력한다. S=0이면 "0"을, S>0이면 "+"를, S<0이면 "-"를 출력하면 된다.

예제 입력 1 복사

3
0
0
0
10
1
2
4
8
16
32
64
128
256
-512
6
9223372036854775807
9223372036854775806
9223372036854775805
-9223372036854775807
-9223372036854775806
-9223372036854775804

예제 출력 1 복사

0
-
+

출처

 


import java.util.Scanner;
import java.math.BigInteger;

public class Main
{
    private static Scanner s = new Scanner(System.in);
    
	public static void main(String[] args) {
	    int testCount = 3;
	    
	    StringBuffer result = new StringBuffer();
	    
	    for(int i=0; i<testCount; i++) {
	        int testCaseCount = s.nextInt();
	        BigInteger total = BigInteger.ZERO; // 수가 너무 커서 BigInteger을 사용하지 않으면 풀 수 없음.
	        
	        for(int j=0; j<testCaseCount; j++) {
	            BigInteger number = new BigInteger(s.next());
	            total = total.add(number);
	        }
	        
	        
	        // 같으면 0, 보다 작으면 -1, 크면 1 반환됨.
	        int compare = total.compareTo(BigInteger.ZERO);
	        
	        switch(compare) {
	            case 0: 
	                result.append("0");
	                break;
	            case -1: 
	                result.append("-");
	                break;
	            case 1: 
	                result.append("+");
	                break;
	        }
	        
	        // 마지막이 아니면 줄바꿈.
	        if(i!=testCount-1) result.append("\n");
	    }
	    
	    System.out.println(result.toString());
    }
}

참고: https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html

 

 

  • 또다른 BigInteger 관련 문제로는 해당 문제가 있다.

 

728x90
반응형