청야에몽
청야의 개발 일기
청야에몽
전체 방문자
오늘
어제
  • 분류 전체보기 (153)
    • os (4)
      • Linux (4)
    • Language (32)
      • Python (15)
      • C# (6)
      • Java (11)
    • BaekJoon (92)
      • 단계별로 풀어보기 (81)
      • 누적합 (11)
    • Test (6)
      • 코딩테스트 (6)
      • 42 SEOUL (0)
    • Project (9)
      • 충돌, 피하기 게임 (8)
      • Unreal engine5 CICD 구축 (1)
    • Git & GitHUB (9)
    • Cloud (0)
      • AWS (0)
      • Azure (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 논리 연산자
  • 백준
  • pygame
  • Python
  • 자료형
  • for문
  • 누적 합
  • Reset
  • 리눅스
  • 재귀 함수
  • java
  • 누적합
  • c#
  • 파이썬
  • git
  • Rebase
  • Linux
  • Revert
  • 연산자
  • 중첩for문

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
청야에몽

청야의 개발 일기

BaekJoon/단계별로 풀어보기

[백준] 함수 - 15596번 (Python)

2022. 11. 23. 10:33
728x90

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 에 저장된 값을 반환시킨다.

728x90
저작자표시 비영리 변경금지

'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
    'BaekJoon/단계별로 풀어보기' 카테고리의 다른 글
    • [백준] 함수 - 1065번 (Python)
    • [백준] 함수 - 4673번 (Python)
    • [백준] 1차원 배열 - 4344번 (Python)
    • [백준] 1차원 배열 - 8958번 (Python)
    청야에몽
    청야에몽
    개인적으로 학습을 하여 까먹지 않기 위해 올리는 블로그입니다.

    티스토리툴바