문제
정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성하시오.
작성해야 하는 함수는 다음과 같다.
- C, C11, C (Clang), C11 (Clang): long long sum(int *a, int n);
- a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000)
- n: 합을 구해야 하는 정수의 개수
- 리턴값: a에 포함되어 있는 정수 n개의 합
- C++, C++11, C++14, C++17, C++ (Clang), C++11 (Clang), C++14 (Clang), C++17 (Clang): long long sum(std::vector<int> &a);
- a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000)
- 리턴값: a에 포함되어 있는 정수 n개의 합
- Python 2, Python 3, PyPy, PyPy3: def solve(a: list) -> int
- a: 합을 구해야 하는 정수 n개가 저장되어 있는 리스트 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000)
- 리턴값: a에 포함되어 있는 정수 n개의 합 (정수)
- Java: long sum(int[] a); (클래스 이름: Test)
- a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000)
- 리턴값: a에 포함되어 있는 정수 n개의 합
- Go: sum(a []int) int
- a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000)
- 리턴값: a에 포함되어 있는 정수 n개의 합
작성 답안
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int N = s.nextInt();
int[] a;
long sum = 0;
for(int i=0; i < N ; i++) {
a[i] = s.nextInt();
sum += a[i];
}
}
class Test (long sum(int[] a){
}return sum;
}
System.out.println(sum);
?? Test 클래스 완성을 어떻게 할지 모르겠음(저 매개변수들 어떻게 활용하는지도 잘 모르겠음)
<정답>
※ 주의할 점
- main 을 구현하는 것이 아니라 "함수만" 구현하는 문제다
- 풀이 방법
함수만 구현하라니.. 뭔소리인가 싶겠으나 다행이 문제에서 자세하게 서술되어 있다.
아래 사진을 보자

클래스 이름은 Test 이다.
함수로 넘어오는 인자 a 는 합을 구해야 하는 정수 배열이다.
즉 a 배열에 저장되어있는 정수들을 더하여 long 형으로 리턴시켜주어야한다.
- 방법 1
|
class Test { |
|
long sum(int[] a) { |
|
long sum = 0; // a 배열 정수 합 변수 |
|
|
|
for(int i = 0; i < a.length; i++) { |
|
sum += a[i]; |
|
} |
|
return sum; |
|
} |
|
} |
<수정 보완>
함수만 구현 하랬으니.. 스캐너에서 값을 받아올 필요가 없는가 보다.
그대로 sum값 리턴 하면 끝이다... 그리고 Test클래스 안에 sum 함수를 그냥 쓰면 되는 것이었다.
정답 및 풀이 출처: https://st-lab.tistory.com/52
'📟java > 백준' 카테고리의 다른 글
백준 11654 자바 (0) | 2022.11.10 |
---|---|
백준 1065 자바 (0) | 2022.11.10 |
백준 4344 자바 (0) | 2022.11.09 |
백준 1546 자바 (1) | 2022.11.08 |
백준5597 자바 (0) | 2022.11.08 |