분류 전체보기
-
59 - (파이썬) 조기 리턴과 리스트 평탄화하는 재귀 함수study with Q - 파이썬 2024. 6. 23. 12:21
# 조기 리턴memo = {1: 1, 2: 1}def fbmm(n): if n in memo: return memo[n] elif n >= 3 : temporary = fbmm(n-1) + fbmm(n-2) memo[n] = temporary return temporaryprint(fbmm(5)) 파이썬은 조건문이나 반복문을 사용하게 되면 들여쓰기가 들어가게 되는 데, 요걸 줄이는 것이 힘이 많이 들어간다.→ 위의 코드에서 같은 실행값을 얻지만 조건문 하나가 줄어드는 형식으로 바꾸면 다음과 같다.memo = {1: 1, 2: 1}def f(n): if n in memo: return memo[n] temp = f(n-1) + f(n-2) memo[n] = temp r..
-
58 - (파이썬) 재귀 함수, 피보나치 수, 메모화(memorization)study with Q - 파이썬 2024. 6. 19. 21:24
# 피보나치 수열: 수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열 즉, a_n을 n번째 항이라고 할 때, 다음과 같다.a_1 = 1a_2 = 1a_n = a_{n-1} + a_{n-2} (n>=3인 자연수) #피보나치 수열 Fibonacci numbersdef fbnc(n): if n == 1 or n == 2 : return 1 elif n >= 3 : return fbnc(n-1) + fbnc(n-2)print(fbnc(1))print(fbnc(2))print(fbnc(3))print(fbnc(4))print(fbnc(5))print(fbnc(6))>>>112358 ※ 근디 말여... 숫자가 늘..
-
57 - (파이썬) 재귀 함수, 팩토리얼 연산study with Q - 파이썬 2024. 6. 19. 20:03
# 재귀 함수: 자기 자신을 호출하는 함수 # 팩토리얼 연산: n! = n * (n-1) * (n-2) ... *1 - 팩토리얼 연산 구현 방법 (1) 반복문을 사용def fact(n): output = 1 for i in range(1, n+1) : output*= i return outputprint(fact(2))print(fact(3))print(fact(4))print(fact(5))print(fact(6))>>>2624120720 파이썬 튜터로 확인해보면...더보기def fact(n): output = 1 for i in range(1, n+1) : output*= i return outputprint(fact(6))그리고 return value로 호출되고 함수의 스택은 ..
-
56 - (파이썬) 메모리 구조 : 함수의 값 복사와 레퍼런스 복사study with Q - 파이썬 2024. 6. 15. 13:51
# 결론: 변수를 변수에 할당하면[복사하면] 스택에 있는 것이 할당[복사]되는 것이다. # 기본 자료형 복사 : 중간에 변수를 바꾼다고 해서 원본값에 영향을 주지 않는다.m = 10n = mm = 100print(m)print(n)>>>10010 # 복합 자료형 복사 :주소를 스택에 저장해서 같은 주소를 가리키게 된다.0x01이라는 주소가 들어 있다고 생각하면 기본 자료형과 크게 차이가 없다. 기본 자료형과 비슷하지만 주소가 0x02라고 바뀐다고 생각하면 된다. append 함수를 호출해서 요소를 추가해보면힙에 있는 리스트를 조작했기 때문에 l과 k의 내용이 함께 변경됨을 알 수 있다. # 매개변수 복사 : 함수를 호출할 때 매개변수도 c=a, d=b처럼 복사된다는 사실을 생각하면 예측하기 쉽다.다음의..
-
55 - (파이썬) 메모리 구조: global 키워드study with Q - 파이썬 2024. 6. 15. 12:25
# 전역 스택 (global stack): 파이썬은 함수를 호출할 때 함수 내부 코드를 실행하기 위해 함수 내부의 변수를 저장할 스택을 추가로 만든다. 그 중에서도 가장 외각에 있는 스택을 전역 스택(global stack)이라고 한다. ...그래서# 전역 위치에서 x, y라는 변수를 생성x = 0y = [1,1,2,3,5,8,13]def function(): # 함수 내부에서 x, y라는 변수를 생성 x = 100 y = [90, 80, 70, 60, 50] print(x) #100 print(y) #[90, 80, 70, 60, 50]function()print(x) print(y) >>>100[90, 80, 70, 60, 50]0[1, 1, 2, 3, 5, 8, 13] 그런데 만약 함수 ..
-
54 - (파이썬) 메모리 구조 : 스택과 힙, 함수와 결합할 때study with Q - 파이썬 2024. 6. 15. 11:05
# 메모리 관리에서의 스택과 힙 현대적인 프로그래밍 언어에서는 자료를 크게 2가지로 구분1) 기본 자료형 (마치 내 월급처럼) 작고 간단한 것 숫자, 문자열, 불 등 (문자열은 크기가 매우 커질 수 있지만 사용적인 관점에서 기본적이라서 기본 자료형에 포함시키는 편이다.)크기가 작고 고정되어 있으므로 → (통장에) 상자에 넣어서 옆에 차곡차곡 보관해욥이렇게 기본 자료형들이 정리되어 있는 공간을 스택(stack)이라고 한다.2) 복합 자료형(우리 레오처럼) 크고 무거운 것 리스트, 딕셔너리, 객체 등 (아무래도 고양이는 액체니까) 크기가 정해져있지 않고 → 다른 창고에 보관을 하고, 이 위피를 상자에 넣어서 차곡차곡 보관해욥이렇게 객체 자료형이 저장되어 있는 거대한 창고를 힙(heap)이라고 한다. 그리..
-
53 - (파이썬) 함수 리턴과 5-1절 확인 문제study with Q - 파이썬 2024. 6. 10. 22:11
def f(x) : #값을 들고 돌아가슈 return x+1print(f(10))print(f(20))>>>1121 def f(x) : #return 뒤에 아무 값도 넣지않으면 return # None을 들고 돌아가게 됨print(f(10))print(f(20))>>>NoneNone #함수 사용해보기: 요론 모양def 함수(매개변수): 변수 = 초기화 #처리 #처리 처리 #함수 처리 return 변수 start부터 end까지 더하는 함수 def sum_all(start, end): output = 0 for i in range(start, end+1): output += i return outputprint(sum_all(1, 10))print(sum_all(1, 100)..
-
52 - (파이썬) 기본 매개변수study with Q - 파이썬 2024. 6. 10. 20:54
#기본 매개변수def test (v = 10): print(v)test()test(30)test(v = "str")>>>1030str #키워드 매개변수 / 기본 매개변수: 기본 매개변수가 2개 이상일 때를 생각해보면 def test (v = 10, i = 15): print(v,i)test()test(10, 50)>>> 10 1510 50...이럴거면 변수 v를 지정해둔 의미가 없잖여그래서 변수를 바꾸고자 하는 키워드만 바꿔서 입력 def test (v = 10, i = 15): print(v,i)test()test(i = 50)>>>10 1510 50 ※ 기본 매개변수는 마지막에 입력해야 한다.: 기본 매개변수를 먼저 입력해야 하는 상황이 오기 때문에def test (v = 10, i): pr..