이 영역을 누르면 첫 페이지로 이동
Stranger's LAB 블로그의 첫 페이지로 이동

Stranger's LAB

페이지 맨 위로 올라가기

Stranger's LAB

프로그래밍과 관련하여 다양한 알고리즘 문제를 풀어보고, 프로그래밍 언어를 이해해 볼 수 있도록 돕고자 만든 블로그 입니다.

[백준] 15596번 : 정수 N개의 합 - [C++]

  • 2022.01.08 17:58
  • C++ - 백준 [BAEK JOON]/함수
글 작성자: ST_
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

 

 

 

 

 

 

 

 





  • 문제

 

//shf

 

 

 

이 번 문제는 본문에 나와있듯 함수를 작성하기만 하면 된다.

 

 

 

 

 

 

 

 





  • 알고리즘 [접근 방법]

 



 

이 번 문제는 어려울 것은 없다.

아마 대부분 알고리즘을 푸는 분들이라면, 어느정도 언어 작성에 있어 기초는 배우셨을 것이니,,,

 

 

그런김에 함수에 대해 짧게 설명하자면, 어떤 언어든 기본적으로 함수는 다음 3가지의 구조를 갖는다.

 

입력 값(parameter / 파라미터)

식 (body)

출력 값(return value / 반환 값)

 

간단하게 그림을 보자면 다음과 같다.

 

st-lab.tistory.com

 

또 다른 예로는 우리가 함수를 떠올린다면 보통 수학에서 배웠던 f(x) 꼴이 생각 날 것이다.

 

예로들어

f(x) = 2x + 3

 

위 함수가 있다고 해보자.

그러면 x는 미지수, 즉 어떤 값이 올지 모르는 수다.

 

그리고 f(x) 는 2x + 3 이라는 식을 정의 한 f라는 이름의 함수다. 사실 g(x)로 하던, c(x)로 하던 상관이 없지만, 일반적으로 function의 의미로 f로 사용할 뿐인 것이다.

 

자, 그러면 만약 x에 4를 주입해보자.

그러면 f라는 함수에 4를 넣으면, f 함수가 정의 한 2x + 3 은 2*4 + 3 이라고 되고, 결과 값은 11이 나온다.

 

 

프로그램 언어에서도 마찬가지다.

 

f 처럼 함수의 이름을 정의하고, x 처럼 파라미터(미지수)를 갖으며, 2x + 3 처럼 실행하고자 하는 로직(혹은 body)을 통해 반환되도록 하면 된다.

 

 

그럼 기본적인 C++ 함수 정의하는 방식부터 보자.

 

 

앞서 말했던 것과 유일하게 다른 점이라면 함수 이름 앞에 출력 타입이 붙는다는 것 정도다.

그러나 그리 어려울 것도 없는 것이, 결국 반환하고자 하는 타입을 함수 이름 전에 지정해주면 되는 것 뿐이다.

 

 

이 기본 문법을 이해한다면, 이제 위 본 문제를 풀 수 있을 것이다.

 

 

 

 

 

 

 

 

 

 





  • 1가지 방법을 사용하여 풀이한다.

 



이 번 문제는 문제 조건에 맞는 함수만 작성하면 되기 때문에 별달리 구분 할 것이 없다.

또한 소스코드 제출을 눌러보시면 포맷이 지정되어 나오니, 사실 이 전에 배웠던 for문과 vector를 쓸 줄 알기만 하면 쉽게 풀린다.

 

 

 

 

 

 






  • 풀이






 

#include <vector>

long long sum(std::vector<int> &a) {
	long long ans = 0;
	for (int i = 0; i < a.size(); i++) {
		ans += a[i];
	}
	return ans;
}

 

 

위와 같이 풀면 된다.

(참고로 iterator를 써도 되긴 한다. 다만, 이 부분은 함수라는 카테고리랑은 조금 범위가 다르니 더보기로만 남겨두기로 하겠다.)

 

더보기

 

#include <vector>

long long sum(std::vector<int> &a) {
	long long ans = 0;
	std::vector<int>::iterator iter;
	for (iter = a.begin(); iter < a.end(); iter++) {
		ans += *iter;
	}
	return ans;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 





  • 성능






 

 

채점 번호 : 37253284  -  방법 1

 

 

 








  • 정리

 



이 번 문제는 그리 어려운 문제는 아니었을 것이다.

아마 대부분 C++를 처음 배우셨더라도 한 번쯤은 써보았을 것 같아 크게 설명은 하지 않고 이쯤에서 마무리 하겠다.

 

 



저작자표시 비영리 변경금지 (새창열림)

'C++ - 백준 [BAEK JOON] > 함수' 카테고리의 다른 글

[백준] 1065번 : 한수 - [C++]  (0) 2022.04.12
[백준] 4673번 : 셀프 넘버 - [C++]  (2) 2022.04.08

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [백준] 1065번 : 한수 - [C++]

    [백준] 1065번 : 한수 - [C++]

    2022.04.12
  • [백준] 4673번 : 셀프 넘버 - [C++]

    [백준] 4673번 : 셀프 넘버 - [C++]

    2022.04.08
다른 글 더 둘러보기

정보

Stranger's LAB 블로그의 첫 페이지로 이동

Stranger's LAB

  • Stranger's LAB의 첫 페이지로 이동

검색

나의 외부 링크

  • st-github

공지사항

  • 공지 - 블로그 사용 설명서

메뉴

  • 홈
  • 방명록

카테고리

  • 전체 카테고리 (267)
    • Java (5)
    • JAVA - 백준 [BAEK JOON] (177)
      • 입출력과 사칙연산 (14)
      • 조건문 (7)
      • 반복문 (11)
      • 1차원 배열 (7)
      • 함수 (3)
      • 문자열 (10)
      • 기본 수학 1 (8)
      • 기본 수학 2 (6)
      • 2차원 배열 (0)
      • 정렬 (10)
      • 재귀 (4)
      • 브루트 포스 (5)
      • 집합과 맵 (0)
      • 기하 1 (5)
      • 정수론 및 조합론 (12)
      • 백트래킹 (8)
      • 동적 계획법 1 (15)
      • 누적 합 (0)
      • 그리디 알고리즘 (5)
      • 스택 (5)
      • 큐, 덱 (7)
      • 분할 정복 (9)
      • 이분 탐색 (7)
      • 기타 문제 (17)
      • 별 찍기 문제 모음 (2)
    • C++ - 백준 [BAEK JOON] (46)
      • 입출력과 사칙연산 (14)
      • 조건문 (7)
      • 반복문 (11)
      • 1차원 배열 (7)
      • 함수 (3)
      • 문자열 (0)
      • 기타 문제 (4)
    • 자료구조 (18)
      • Java (18)
    • 알고리즘 (11)
      • Java (11)
    • 프로그래밍 기초 (6)
    • 이모저모 (2)
    • 일상의 글 (2)

최근 글

정보

ST_의 Stranger's LAB

Stranger's LAB

ST_

블로그 구독하기

  • 구독하기
  • 네이버 이웃 맺기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © ST_.

티스토리툴바