본문 바로가기
프로그램이야기/알고리즘

[백준] 정수 N개의 합 15596번(파이썬)

by Doinge 2020. 10. 21.
728x90
반응형

백준 정수 n개의 합 15596 파이썬

문제

정수 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 function_name( argument1,...):
	do something...
    
    return result

def 다음 자신이 원하는 함수 이름을 집어넣는다. 괄호 안에는 전달받을 매개변수를 넣는다.

다음 줄에서 원하는 동작을 수행 후 결과값을 return 시켜준다.

 

위 문제를 풀어보도록 하겠다.

두가지 방법으로 풀 수 있는데

첫번째 방법은 반복문을 이용한 방법,

두번째 방법은 파이썬 내장함수를 이용해서 풀었다.

 

첫번째 방법

def solve(a):
    ans = 0
    for i in a:
        ans +=i
    return ans

전달받은 매개변수 리스트 a을 

반복문으로 이용해서 인자 하나씩 더해서 반환한다.

 

두번째 방법

간단하게 2줄로 끝났다.

함수명을 solve로 지어 주었다.( 2줄 ), 전달받은 매개변수는 a로 하였다. ( 2줄 )

반환값으로 파이썬 내장함수인 합계를 구해주는 sum 함수를 써서 전달받은 리스트들의 합을 반환해 주었다.

 

결과 화면이다. 밑에 있는게 첫번째 방법으로 푼 결과이다.

첫번째에 비해 두번째로 푼방법이 코드길이도 줄었을 뿐 아니라 수행시간도 줄어든 모습을 볼 수 있다.

 

그럼 오늘은 이만.

728x90
반응형

댓글