본문 바로가기

전체 글198

15. 튜플/ 이뮤터블 자료 / 뮤터블 자료 혼공파 60 강 # 튜플 a = (1, 2, 3) print(a) print(a[0]) print(a[1]) print(a[2]) # 자료를 하나 갖는 튜플을 만드려면 뒤에 쉼표를 찍어줘야 함 b = (1, ) print(b, type(b)) # 괄호를 생략해도 튜플로 인식 c = 1, 2, 3 d = 1, # 튜플과 리스트의 차이 # 튜플은 외관이 간단! / 요소를 변경할 수 없다! e = [1, 2, 3] f = (1, 2, 3) # f[1] = 5 # 불가함 ## 다중 할당 구문 # 여러 개의 변수를 한번에 할당 할 때 사용 a, b = 10, 20 print(a, b) ## 함수의 다중 리턴 def a(): return 10, 20, 30 b, c, d = a() # (b, c, d) = (10,.. 2023. 3. 3.
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.