함수

CaChiJ·2021년 9월 24일
0

알고리즘-교안

목록 보기
1/4

함수


1. 함수란

1-1. 개론

함수의 수학적 정의는 다음과 같다.

수학에서 함수는 어떤 집합의 각 원소를 다른 집합의 유일한 원소에 대응시키는 이항관계다. - 위키피디아

함수 f(x)f(x) 에 정의역의 한 원소 a(aR)a(a \in \mathbb R)를 대입할 때 f(a)f(a)의 값은 aa에 따라 달라진다. 예를 들어 f(x)=2xf(x) = 2x 일 때 f(a)의 값은 다음과 같다.

aaf(a)f(a)
\cdot\cdot\cdot\cdot\cdot\cdot
1-12-2
0000
1122
2244
\cdot\cdot\cdot\cdot\cdot\cdot
1024102420482048
\cdot\cdot\cdot\cdot\cdot\cdot

이를 통해 함수에 대입하는 값(입력)에 따라 함수의 결과(출력)가 정해짐을 알 수 있다. 프로그래밍에서의 함수도 크게 다르지 않다.

함수(function), \cdot\cdot\cdot (중략) \cdot\cdot\cdot 는 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미한다. - 위키피디아

프로그래밍에서 함수는 특정한 동작을 수행하는 코드 뭉치이다. 이 코드 뭉치는 입력과 출력을 가지며 입력에 따라 특정한 값을 출력한다. (참고 : 프로그래밍에서의 함수는 한 입력에 대한 출력이 2개 이상일 수 있다)

1-2. 왜 함수인가?

중복되는 코드를 함수로 묶으면 관리하기 용이하다. 예를 들어 아래 2-1. SayHello 코드 샘플에서 "Good Morning, <이름>" 형식으로 출력하려고 한다면 함수에서 std::cout 부분만 수정하면 된다. 함수로 중복되는 부분을 제거하지 않았다면 각각 수정해야 했을 것이다. 중복되는 부분이 있다면 함수로 분리해 관리하는 것이 훨씬 좋은 방법이다.

1-3. 함수의 구현

주요 언어에서 함수의 구현은 일반적으로 다음과 같다.

함수명 : 함수의 이름
매개변수 목록 : 함수 호출 시 전달될 인자를 받을 변수들의 목록
반환형 : 함수가 출력할 값의 자료형

함수를 호출하는 방법은 일반적으로 아래와 같다.

<함수명> ([인자1, 인자2, ... ]);






2. 코드 샘플

📢 코드 샘플은 이 곳에서 공개 중입니다.

2-1. SayHello

📜 소스코드 (C++)

  • 위 코드에서 SayHello 함수는 4~6에 선언 및 정의되어 있다.
  • 반환형은 void이고 매개변수로 문자열을 입력받는다.
  • 10, 13에서 SayHello를 호출하고 있다. 인자로 "World"와 "Choi"를 넣어주고 있다.

✨ 결과

Hello, World!
Hello, Choi!
  • 전달되는 인자에 따라 출력되는 결과가 달라짐을 알 수 있다.

2-2. AddNums

📜 소스코드 (C++)

  • 3~5에 AddNums 가 선언 및 정의되어 있다.
  • AddNums 의 반환형은 int이고 매개변수로 int형 값 2개를 받는다.
  • 8, 11에서 AddNums 를 호출한 뒤 결과를 int형 변수에 저장하고 있다.

✨ 결과

3
2
  • AddNums1+21+23+5-3+5를 성공적으로 수행해 반환했음을 알 수 있다.






3. 초급 문제

3-1. 뒤집어 더하기(radd) - 더블릿

👀 살펴보기

문제 : 입력으로 주어진 두 수를 뒤집어서 더한 뒤 반환하는 함수를 작성하는 문제
핵심 1 : <주어진 수> % 10 = <주어진 수의 일의 자리 수>
핵심 2 : 3개의 정수를 뒤집어야 함. 이때 함수를 통해 중복 코드를 제거할 수 있음.

🎨 문제 설명 및 판서

  • 정수를 뒤집는 방법을 중심으로 설명
  • 함수로 작성하면 긴 코드를 재사용할 수 있음을 강조
  • 정수의 맨 뒤에서 빼는 방법
  • 정수의 맨 앞에 삽입하는 방법
  • 수도 코드
  • 실제 프로그램 흐름

정답 소스코드


0개의 댓글