happy coding
[java] 1247. 부호 본문
문제
N개의 정수가 주어지면, 이 정수들의 합 S의 부호를 구하는 프로그램을 작성하시오.
입력
총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거나 같다.
출력
총 3개의 줄에 걸쳐 각 테스트 셋에 대해 N개의 정수들의 합 S의 부호를 출력한다. S=0이면 "0"을, S>0이면 "+"를, S<0이면 "-"를 출력하면 된다.
import java.io.*;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 3; i++) {
int N = Integer.parseInt(br.readLine());
BigInteger check = BigInteger.ZERO;
for (int j = 0; j < N; j++) {
long input = Long.parseLong(br.readLine());
check = check.add(BigInteger.valueOf(input));
}
if (check.equals(BigInteger.ZERO)) {
System.out.println("0");
} else if (check.compareTo(BigInteger.ZERO) > 0) {
System.out.println("+");
} else {
System.out.println("-");
}
}
}
}
long 자료형을 사용해 check를 선언하면 "틀렸습니다."가 발생해서, 왜 그런지 찾아보니까 BigInteger형으로 해야 한다고 하더라.
'coding study > baekjoon' 카테고리의 다른 글
[java] 10250. ACM 호텔 (0) | 2023.08.19 |
---|---|
[java] 2441. 별 찍기 - 4 (0) | 2023.08.19 |
[java] 1267. 핸드폰 요금 (0) | 2023.08.19 |
[java] 4153. 직각 삼각형 (0) | 2023.08.18 |
[java] 10039. 평균 점수 (4) | 2023.08.18 |
Comments