Python/알고리즘 연습
-
4. 팩토리얼 구하기 - 재귀 호출의 등장Python/알고리즘 연습 2024. 7. 12. 15:25
* 책: 모두의 알고리즘 with 파이썬 1부터 n까지 연속한 정수의 곱을 구하는 알고리즘을 만들어 보세요. (=팩토리얼 구하기) 1. 팩토리얼을 구하는 알고리즘 ①1부터 n까지의 합을 구하는 코드를 변형하여 만들기 가능 123456789# 구하는 방법1: 1부터 n까지의 합을 구하던 코드 변형 def fact(n): m = 1 for i in range(1, n+1): m = m * i return m fact(5) # 120cs 2. 팩토리얼을 구하는 알고리즘 ②: '재귀호출' 사용 1) 재귀호출(recursion) 이란?: 함수 안에서 자기 자신을 부르는 것 - 재귀 호출 시 반드시 끊어주는 "종료 조건"이 있어야 함 - 재귀 호출 함수..
-
3. 동명이인 찾기 ①Python/알고리즘 연습 2024. 7. 11. 15:15
* 책: 모두의 알고리즘 with 파이썬 n명의 사람 이름 중에서 같은 이름을 찾아 집합으로 만들어 돌려주는 알고리즘을 만들어보세요.n명의 이름이 들어있는 리스트에서 같은 이름이 있는지 확인같은 이름이 있을 경우 새로 만든 집합에 넣어서 return 1. 선행 개념: 집합 (set)리스트와 마찬가지로 정보를 여러개 넣어서 보관할 수 있는 파이썬 자료형단, 같은 자료가 중복되서 들어가지 않으며자료의 순서도 무관함: {1, 2} = {2, 1} ※ 자주 쓰이는 집합 기능 12345678910111213141516171819202122232425262728293031 ########### len(s): 집합 s의 길이(자료 개수) ################ s = set() # 새 집합 만들기len(s..
-
2. 최댓값 찾기Python/알고리즘 연습 2024. 7. 9. 12:11
* 책: 모두의 알고리즘 with 파이썬 주어진 숫자 n개 중 가장 큰 숫자를 찾는 알고리즘을 만들어 보세요. 1. 관련 개념: python 리스트 다루기 123456789101112131415161718192021222324252627# 리스트 개념 확인 a = [1,2,3,4,5,6,7,8,9,10]a[0] # 1a[9] # 10; n개 요소를 가진 리스트의 마지막 요소는 n-1 인덱스로 구할 수 있음a[-1] # 10a[-2] # 9a[-10] # 마이너스 인덱스 사용 시 n개 요소를 가진 리스트의 첫번째 요소는 -n 인덱스 # 리스트에서 많이 쓰이는 함수들 # len(a), a.append(x), a.clear()는 생략 # a.insert(i, x) # a 라는 리스트의 i번째에 x 요소를 ..
-
1. 1부터 n까지의 합 구하기Python/알고리즘 연습 2024. 7. 9. 11:33
* 책: 모두의 알고리즘 with 파이썬 1. 1부터 n까지의 합을 구하는 방법머릿속에 무의식 중으로 떠오르는 방법은 아래 코드의 방법 1가우스처럼 똑똑하게 천재처럼 구하려면 방법 2 123456789101112131415161718192021222324# 1부터 n까지의 합 구하기 방법1# 냅다 1부터 더하는 방법 def sum_n(n): s = 0 # 초기화 for i in range(1, n+1): s = s + i return s print(sum_n(10)) # 55 # 1부터 n까지의 합 구하기 방법2# 가우스처럼 똑똑하게 구하기 (난 안됨 ㅠ) def gaus(n): return n*(n+1)//2 gaus(10) # 55 # n*(n+1)..