A Very Big Sum
문제]
n this challenge, you are required to calculate and print the sum of the elements in an array, keeping in mind that some of those integers may be quite large.
Function Description
Complete the aVeryBigSum function in the editor below. It must return the sum of all array elements.
aVeryBigSum has the following parameter(s):
- int ar[n]: an array of integers .
Return
- long: the sum of all array elements
Input Format
The first line of the input consists of an integer .
The next line contains space-separated integers contained in the array.
Output Format
Return the integer sum of the elements in the array.
Constraints
Sample Input
5
1000000001 1000000002 1000000003 1000000004 1000000005
Output
5000000015
* 요약 : 문자를 콘솔로 받아서 Long타입 배열에 저장 후 배열인자들의 합을 구한다.
제출]
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
public class Solution {
// Complete the aVeryBigSum function below.
static long aVeryBigSum(long[] ar) {
long result = 0;
for(int i=0; i < ar.length; i++) {
result+=ar[i];
}
return result;
}
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) throws IOException {
BufferedWriter bufferedWriter =
new BufferedWriter(new OutputStreamWriter(System.out));
int arCount = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
long[] ar = new long[arCount];
String[] arItems = scanner.nextLine().split(" ");
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
for (int i = 0; i < arCount; i++) {
long arItem = Long.parseLong(arItems[i]);
ar[i] = arItem;
}
long result = aVeryBigSum(ar);
bufferedWriter.write(String.valueOf(result));
bufferedWriter.newLine();
bufferedWriter.close();
scanner.close();
}
}
풀이]
- Scanner class : 읽은 바이트를 문자, 정수, 실수, 불린, 문자열 등
다양한 타입으로 변환하여 리턴(java.util.scanner
- System.in : 자바의 표준입력 스트림(키보드)
- scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?"); :
여러줄을 입력받아야하는 상황에서 엔터도 한줄로 인식하기에 예외처리코드
예를 들어
"
red green blue
[엔터]
japan korea
"
위의 형식으로 입력이 되고 array1 =[ red, green, blue ], array2 = [ japan, korea]
로 저장하려고 할 때, [엔터] 입력 때문에 array2 = [] 가 될 것이다.
참고 : https://dev-kimse9450.tistory.com/17
- aVeryBigSum 함수에선 for문을 이용해 배열인자의 합계를 구한다.
댓글 없음:
댓글 쓰기