반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 알고리즘
- 유한소수 판별하기
- 코딩 테스트
- 리스트
- 들여쓰기로 표현한 트리
- java
- 자바
- 파이썬
- 프로그래머스
- list
- 스택
- 알고리즘의 조건
- 유사코드
- 알고리즘 표현
- itertools
- Tree
- LV.1
- 태그
- 큐
- Import
- import itertools
- 자료구조
- 코딩테스트
- Combination
- html
- python
- 트리
- 좋은 알고리즘
- 과일 장수
- 알고리즘의 조건 5가지
Archives
- Today
- Total
인천의 자유인
파이썬으로 팩토리얼 구하기(반복문, 순환 이용) 본문
728x90
반응형
먼저 순환이라는 것이 무엇을 의미하는 말할 필요가 있을것 같습니다.
순환이란 어떤 함수가 자기 자신을 다시 호출하여 문자을 해결하는 프로그래밍 기법입니다.
팩토리얼을 구할 수 있는 방법이라 하면 반복문과 순환을 이용하는 두가지 방법을 이용할 수 있는데 먼저 반복문 부터 봅시다.
1. 반복문
반복문을 이용한 예입니다.
def loop(n):
a =1
for k in range(2, n+1):
a = a * k
return a
우리에게 굉장히 친숙한 방법입니다. a = 1로 한 것은 알겠지만 0으로 하면 계속 0이 되기 때문입니다.
이 예제는 그냥 1부터 n까지 계속 곱하는 간단한 식입니다.
반응형
2. 순환
순환을 사용한 예입니다.
def recusion(n):
if n == 1:
return 1
else:
return n* recusion(n-1)
이 부분을 보면 지속적으로 자기 자신을 호출하고 있음을 알게 된다. n이 1이면 return하는 이유는 멈추기 위해서 입니다. 계속 계속 값이 작아질텐데 만약 그것을 안한다면 음수까지도 계속 곱하는 이런 상황이 일어날 수 있기 때문입니다.
예제를 보면 순환을 왜 사용하는지 의문이 들수 있습니다. 왜냐하면 반복문이 훨씬 익숙하고 순환은 함수 호출에 의한 부분이 있기 때문이다. 하지만 이 부분을 배우는 이유는 앞으로 트리와 같은 특정한 문제에 대해 반복 보다 훨씬 간결한 코딩이 가능하기 때문입니다. 또한 알고리즘에도 유용하게 쓰일 때가 있다고 합니다.
그러므로 힘들더라도 이 부분을 확실히 이해해야할 필요성이 있다고 생각합니다.
728x90
반응형
'알고리즘&자료구조' 카테고리의 다른 글
자료구조(리스트) - 배열 구조 vs 연결된 구조 (0) | 2024.08.12 |
---|---|
자료구조 - 리스트(List) (0) | 2024.08.09 |
자료구조 - 덱(deque) (0) | 2024.08.06 |
자료구조 - 큐(Queue) (0) | 2024.08.03 |
자료구조 - 스택(stack) (0) | 2024.07.29 |