https://www.acmicpc.net/problem/15596
15596번: 정수 N개의 합
C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang)
www.acmicpc.net
문제
정수 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개의 합
주어지는 코드
def solve(a):
ans = 0
return ans
코드 정답
sum 함수 이용
def solve(a):
return sum(a)
for 반복문 이용
def solve(a):
ans = 0
for x in a:
ans += x
return ans
풀이
함수란 무엇일까? 같은 경우에 하나의 포장지 안에 넣어서 계속 재사용 할 수 있게 만들어 놓은 것을 함수라고 한다.
즉, 하나의 로직을 무수히 복사하고 붙여넣어 사용하는 것이 아닌, 함수로 묶어서 좀더 편리하게 사용할 수 있는 것이다.
파이썬에서는 함수인 것을1 알려주기 위해 def 를 사용한다.
def 함수명(매개변수1, 매개변수2, ...):
수행문장
return 반환값
위와 같은 형식으로 작동을 하며, 매개변수가 없을 수도 있고, 반환 값이 없을 수도 있으며, 수행 문장이 없을 수도 있다.단, 함수명은 반드시 정의를 해줘야만 한다.
< 주어지는 코드 >
1행 : 사용될 매개변수 a 를 받아 작동하는 함수 solve 를 생성한다. 매개변수를 받고서 2~3행을 실행한다.
2행 : ans 라는 변수에 0이라는 값을 넣어 생성한다.
3행 : ans 값을 반환시켜준다.
< sum 함수 이용 >
1행 : 사용될 매개변수 a 를 받아 작동하는 함수 solve 를 생성한다. 매개변수를 받고서 2행을 실행한다.
2행 : 매개변수에 저장되어 있는 값들을 모두 더한 후 반환시킨다.
< python 반복문 이용 >
1행 : 사용될 매개변수 a 를 받아 작동하는 함수 solve 를 생성한다. 매개변수를 받고서 2~5행을 실행한다.
2행 : ans 란느 변수에 0 이라는 값을 넣어 생성한다.
3행 : x 의 값이 a 값을 따라갈 때까지 4행을 실행한다.
4행 : ans = ans + x 를 실행한다.
5행 : ans 에 저장된 값을 반환시킨다.
'BaekJoon > 단계별로 풀어보기' 카테고리의 다른 글
[백준] 함수 - 1065번 (Python) (0) | 2022.11.24 |
---|---|
[백준] 함수 - 4673번 (Python) (0) | 2022.11.24 |
[백준] 1차원 배열 - 4344번 (Python) (1) | 2022.11.22 |
[백준] 1차원 배열 - 8958번 (Python) (0) | 2022.11.22 |
[백준] 1차원 배열 - 1546번 (Python) (0) | 2022.11.22 |