달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (334)
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (126)
      • JAVA (50)
      • CS (1)
      • Database (27)
      • NetWork (2)
      • 자료 구조 (2)
      • React (8)
      • Spring (3)
      • JPA (1)
      • HTML & CSS (18)
      • JS (3)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • SQL고득점Kit
  • BOJ
  • 백준문제풀이
  • Bronze V
  • 프로그래머스
  • BOJ algorithm
  • 혼자공부하는SQL
  • Bronze III
  • java algorithm
  • SQL
  • 문제풀이
  • sql 문제풀이
  • react
  • 백준
  • HTML
  • programmers
  • 자바
  • Scanner
  • BRONZE
  • 혼공SQL
  • MySQL
  • 알고리즘풀이
  • math
  • java
  • 혼공MySQL
  • 백준알고리즘
  • Bronze IV
  • Algorithm
  • select
  • 알고리즘

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

[백준] 부호 - 1247 Java[자바]
algorithm/백준

[백준] 부호 - 1247 Java[자바]

2023. 2. 27. 00:47


[Bronze III] 부호 - 1247

문제 링크

 

1247번: 부호

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

www.acmicpc.net

성능 요약

메모리: 310016 KB, 시간: 1692 ms

분류

임의 정밀도 / 큰 수 연산(arbitrary_precision), 사칙연산(arithmetic), 수학(math)

문제 설명

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

입력

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

출력

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



답 : Biginteger의 add로 정수들의 합을 계산하고,
합의 부호 출력은 compareTo()를 사용하여 비교하여 출력한다.
compareTo() 메소드는 호출한 객체와 비교 대상 객체를 비교하여
호출한 객체가 작으면 -, 같으면 0, 크면 +를 반환한다.
코드상 s.compareTo(BigInteger.ZERO)가 양수이면 +, 음수면 -, 0이면 0을 출력한다.

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

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        for (int t = 0; t < 3; t++) {
            int n = sc.nextInt();

            BigInteger s = BigInteger.ZERO;
            for (int i = 0; i < n; i++) {
                s = s.add(sc.nextBigInteger());
            }

            if (s.compareTo(BigInteger.ZERO) > 0) {
                System.out.println("+");
            } else if (s.compareTo(BigInteger.ZERO) < 0) {
                System.out.println("-");
            } else {
                System.out.println("0");
            }
        }
        sc.close();
    }
}

 

저작자표시 비영리 변경금지 (새창열림)

'algorithm > 백준' 카테고리의 다른 글

[백준] 점수계산 - 2506 JAVA[자바]  (0) 2023.02.28
[백준] 핸드폰 요금 - 1267 Java[자바]  (0) 2023.02.27
[백준] 나누기 - 1075 Java[자바]  (0) 2023.02.25
[백준] 보물 - 1026 Java[자바]  (0) 2023.02.24
[백준] 타임카드 - 5575 Java[자바]  (0) 2023.02.23
    'algorithm/백준' 카테고리의 다른 글
    • [백준] 점수계산 - 2506 JAVA[자바]
    • [백준] 핸드폰 요금 - 1267 Java[자바]
    • [백준] 나누기 - 1075 Java[자바]
    • [백준] 보물 - 1026 Java[자바]
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/LimDongHyun99

    티스토리툴바