일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 프로그래머스
- MVVM
- SwiftUI
- 스터디
- ImageSlider
- GIT
- CS193p
- 새싹후기
- xcode
- stanford
- UserDefault
- 코딩테스트
- 조건문
- 프로젝트회고
- flutter #state # stateful #stateless
- xml
- WidgetTree
- Swift
- Masil
- 스위프트
- 백준
- process
- flutter
- IOS
- UIKit
- 청년취업사관학교후기
- colorofdays
- 알고리즘
- 오늘의 색상
- collectionView
Archives
- Today
- Total
개발을 시작하는 이야기
[BaekJoon] 팩토리얼 본문
Swift Study 이주의 문제 1
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.
출력
첫째 줄에 N!을 출력한다.
예제 입력 1 복사
10
예제 출력 1 복사
3628800
예제 입력 2 복사
0
예제 출력 2 복사
1
for문을 사용해도 되지만 재귀함수를 활용해서 풀어야 하는 문제
재귀함수란? 정의 단계에서 자신을 재참조 하는 함수로 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적(recursive)이라고 한다. 설명 할 때 자기를 포함한 것이라고 생각하면 편하다.
let num = Int(readLine()!)!
func factorial(_ num: Int) -> Int {
if num == 0 { return 1 }
return num * factorial(num - 1)
}
print(factorial(num))
함수에서 본인 함수를 다시 참조하는데, 탈출 코드를 재대로 작성해서 무한으로 재귀하는 경우를 주의해야 한다.
맨 처음 재귀함수를 배웠을때 조금 어려웠던 기억이 있어서 스터디원들과 함께 해보면 좋을것 같아서 이주의 문제로 선정했음.
물론 잘하는 몇몇분들에게는 쉬울수 있겠으나 처음 시작하시는 분들도 계시니까.
'개발 이야기 > Algorithm Study' 카테고리의 다른 글
퀵 정렬 [Quidck Sort]이란 (0) | 2022.07.28 |
---|---|
[BaekJoon] 달팽이는 올라가고 싶다 (0) | 2022.06.06 |
[BaekJoon] 회의실 배정 (0) | 2022.06.02 |
[LeetCode] Two Sum (0) | 2022.06.02 |
[프로그래머스] 두 정수 사이의 합 (0) | 2022.06.02 |