▶️ 팩토리얼 : 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 의미
예를 들면
3! 은 3 * 2 * 1 = 6,
4! 는 4 * 3 * 2 * 1 = 4 * 3! = 24
즉, Factorial(n) = n * Factorial(n - 1) // Factorial(n - 1) = (n - 1) * Factorial(n - 2) // .... Factorial(1) = 1 의 구조이다.
이 구조를 이용하여 다음처럼 코드를 짤 수 있다. (탈출 조건 필수❗)
def factorial(n):
if n == 1:
return 1
return n * factorial(n-1)
print(factorial(5))
▶️ 회문 : 똑바로 읽으나 거꾸로 읽으나 똑같은 단어나 문장을 의미
기러기 토마토 스위스 인도인 별똥별 역삼역 우영우 똑바로 읽어도 거꾸로 읽어도 우영우 가 회문 >.<
# palindrome 은 회문을 의미합니다!
is_palindrome("토마토") # True
is_palindrome("tomato") # False
is_palindrome("abcba") # True
회문 확인 코드 작성해보기 1
input = "abcba"
input1 = 'tomato'
input2 = '토마토'
def is_palindrome(string):
n = len(string)
for i in range(n):
if string[i] != string[n - 1 -i]:
return False
return True
print(is_palindrome(input)) # True
print(is_palindrome(input1)) # False
print(is_palindrome(input2)) # True
회문 확인 코드 작성해보기 2
input = "abcba"
input1 = 'tomato'
input2 = '토마토'
def is_palindrome(string):
if len(string) <= 1:
return True
# 가운데 한 글자도 회문이므로 한 글자일때 빠져나오는 조건을 붙여주어야한다.
if string[0] != string[-1]:
return False
# 맨 첫 글자와 맨 마지막 글자가 같지 않을 때 빠져나오는 조건을 붙여주어야한다.
return is_palindrome(string[1:-1])
print(is_palindrome(input)) # True
print(is_palindrome(input1)) # False
print(is_palindrome(input2)) # True
▶️ 지난 강의 때 다음에 알려주겠다고 하셨던 정렬 코드 : .sort()를 붙여주면 된다
array = [4, 1, 6, 2]
array.sort()
print(array)
# [1, 2, 4, 6]
array1 = ['라', '다', '가', '나']
array1.sort()
print(array1)
# ['가', '나', '다', '라']
# 한글도 정렬 가능!