치춘짱베리굿나이스
[백준] 1247 본문
부호
문제
N개의 정수가 주어지면, 이 정수들의 합 S의 부호를 구하는 프로그램을 작성하시오.
입력
총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거나 같다.
출력
총 3개의 줄에 걸쳐 각 테스트 셋에 대해 N개의 정수들의 합 S의 부호를 출력한다. S=0이면 "0"을, S>0이면 "+"를, S<0이면 "-"를 출력하면 된다.
풀이
const sum = () => {
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n")
.map(BigInt);
const len = input.length;
let ans = [];
for (let i = 0; i < len; i++) {
const n = Number(input[i]);
let sum = BigInt(0);
i++;
for (let j = 0; j < n; j++) {
sum += BigInt(input[i]);
i++;
}
i--;
ans.push(sum < 0 ? "-" : sum > 0 ? "+" : "0");
}
console.log(ans.join("\n"));
};
sum();
반성회
BigInt
로 풀어야한다는 점 말고는 쉬운 문제
각 테스트케이스의 길이인 n
까지 BigInt
가 되어버려서 살짝 귀찮다
'Javascript + Typescript > 자바스크립트로 알고리즘풀기' 카테고리의 다른 글
[백준] 24078 (0) | 2022.07.08 |
---|---|
[백준] 12394 (0) | 2022.07.08 |
[백준] 17295 (0) | 2022.07.03 |
[백준] 16170 (0) | 2022.07.03 |
[백준] 15962 (0) | 2022.07.03 |
Comments