본문 바로가기

Base89

14. 재귀함수 / 피보나치수열 / 조기리턴과 리스트 평탄화 혼공파 57 ~ 59 강 1. 재귀 함수 # 재귀 함수 # 자기자신을 호출하는 함수 ## 팩토리얼 연산 # n! = n * (n-1) * (n-2) * ... * 1 ## - 반복문으로 구현 def factorial(n): output = 1 for i in range (1, n + 1): output *= i return output print(factorial(5)) # 120 ## - 재귀함수로 구현 # 수열의 점화식으로 구현 # 팩토리얼의 점화식 # 1! = 1 # (n이 2 이상의 수일 때) n! = n * (n-1)! def facrotial(n): # 1! = 1 if n == 1: return 1 # (n이 2 이상의 수일 때) n! = n * (n-1)! elif n >= 2: retur.. 2023. 3. 1.
13. 메모리구조 / global 키워드 / 복사 혼공파 54 ~ 56 강 1. 스택과 힙 / 함수의 할당과 참조 # 자료구조 # 스택과 힙 : 너무너무 유용! # 메모리 관리에서의 스택과 힙 # 현대적인 프로그래밍 언어 # 자료를 크게 2가지로 구분 # (1) 기본 자료형 : 작고 간단한 것 # 숫자, 문자열, 불 등 # 크기가 작고 고정되어 있으므로 상자에 넣어서 옆에 차곡차곡 보관 # 스택에 넣어서 보관한다 # (2) 복합 자료형 : 크고 무거운 # 리스트, 딕셔너리, 객체 # 크기가 정해져 있지 않고, # 다른 창고에 보관을 하고, 이 위치를 상자에 넣어 차곡차곡 보관 # 힙이라는 창고에 보관하고 스택에 위치를 보관한다 # 할당과 참조 ## 할당 : 값을 저장하는 것 a = 10 b = True c = "안녕하세요" ## 접근/참조 : 저장된 값.. 2023. 2. 27.
12. 함수 / 매개변수 / 함수의 리턴 혼공파 50 ~ 53강 1. 함수 매개변수 기본 # 매개변수 : 함수의 괄호안에 넣는 변수 ## parameter : 함수 정의 때 넣는 변수 ## 함수를 설계하는 사람 ### 1. 함수의 설명서 -> 문서(documentation) ### 2. 예외 처리 def print_3_times(문자열, 횟수): if type(문자열) != str: print("첫 번째 매개변수는 문자열을 입력해야 합니다!") if type(횟수) != int: print("두 번째 매개변수는 정수를 입력해야 합니다!") for i in range(횟수): print(문자열) ## argument : 함수 호출 때 넣은 값 print_3_times("안녕", 10) # 함수를 호출(call)한다. # parameter의 개수와.. 2023. 2. 23.
11. 복잡도/프로그램/루틴/프로시저/메서드/함수 혼공파 48 ~ 49강 1. 복잡도 # 시간 복잡도 자료 크기 n에 따른 계산 횟수를 식으로 표현하여 계수 없이 최고차 항으로만 표현하는 방식 → 점근 표기법, 빅오 표기법, 란다우 표기법 복잡도 최고차 항의 서열 공식 자료에 따른 슈퍼컴퓨터 순위 1위 : US Oak Ridge 연구소 Prontier [1.12엑사 플롭 급] : 1초에 112경 번의 부동소수점 연산 O(n!) 의 자료 개수 32개에 대한 연산만 해도 위의 슈퍼컴퓨터로 계산 불가 따라서 프로그램/알고리즘의 복잡도를 낮추는 것은 중요한 것 현실적으로 사용가능한 시간 복잡도의 마지노선 : nlogn, n^2 2. 함수 관련 기본 용어 # program : 미리 + 작성된 # 코드 전체 : 프로그램(program), 루틴(routine) # .. 2023. 2. 21.
10. 리스트와 딕셔너리 관련 기본 함수 / 리스트 내포 / join함수 혼공파 42 ~ 47강 1. 리스트와 딕셔너리 관련 기본 함수 # 리스트 기본 함수 a = [52, 273, 32, 103, 57] print(max(a)) # 273 리스트 내에 가장 큰 값 print(max(*a)) # 리스트 전개 연산자 활용 print(min(a)) # 32 리스트 내에 가장 작은 값 print(min(*a)) print(sum(a)) # 517 리스트의 합계 # reversed() 함수 # 결과 : 한 번만 사용 가능! (이 후 이터레이터 / 클래스 관련 이유) for i in reversed(range(0, 10)): print(i) # enumerate() 함수 fruits = ["바나나", "사과", "포도"] a = enumerate(fruits) print(list(a).. 2023. 2. 20.
9. reversed() 함수 / while 반복문 / break / continue 키워드 혼공파 38 ~ 41강 1. reversed() 함수 # reversed() # 매개 변수 : 반복 가능한 것 # 결과 : 그것을 뒤집은 것 # 결과 자료형 : 이터레이터 # -> list()를 사용해 리스트로 변환해서 결과 보기 # 리스트 print(list(reversed([1, 2, 3, 4, 5]))) # [5, 4, 3, 2, 1] # 범위 print(list(reversed(range(0, 10)))) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] for i in reversed(range(0, 10)): print(i) # 별 피라미드 만들기 # height = 10 # for i in range(1, height + 1): # print("*" * i) height = 10 f.. 2023. 2. 18.