본문 바로가기
728x90
반응형

분류 전체보기458

재귀함수와 스택(Stack) 재귀함수 : 자기자신을 호출하는 함수 이때 stack 이라는 자료 구조를 사용하여 작동한다. 재귀함수는 for문 즉 반복문의 대체자이다. n 입력값을 3으로 가정하고 설명을 해보겠습니다. 12 줄: 입력값 n 즉, 3 을 받음. 13 줄: DFS(3): DFS함수를 호출하여 3을 넘김. 4 줄: 함수 DFS (3) if 문 실행 5 줄: 만약 x 가 0보다 크다면 실행. 0이거나 작으면 종료 6 줄: x 출력 -> 3이 출력됨. 7줄 ; DFS 함수 호출 [이 부분이 재귀함수이다. 왜냐하면 자기자신의 함수를 호출하기 떄문에 ] DFS(3-1) 로 DFS(2)가 되며 함수 DFS를 호출함 다시 4번줄로 올라가서 def DFS(2): 가 되면서 5번줄: if 2> 0 : 가 실행되고 참이므로 6번줄: pri.. 2022. 10. 9.
바둑이 승차(DFS) n 을 5를 입력받았다고 가정. c 는 259를 입력받았다고 가정. 리스트 a에 입력받을 수는 81 , 58, 42, 33, 61 로 가정하겠습니다. 여기서 L은 리스트a 의 인덱스번호를 의미합니다. sum 은 부분집합의 합을 의미합니다. total 은 리스트 a의 모든 값. result 는 제한 무게를 충족하는 우리가 출력하고자 하는 결과값. 25번줄: DFS 함수 호출 result 변수를 전역 변수로 지정하고 만약 sum + (total 에서 tsum을 뺀값)이 result 보다 작다면 return 시킴. 20줄에서 result 값을 -2147000000으로 할당했기 때문에 return 보다 작기 힘들다. 8번줄 만약 더한값(sum)이 무게제한(c) 보다 크다면 return 해서 종료시켜버린다. c보.. 2022. 10. 8.
[python] 전역변수와 지역변수 정리 전역변수는 main 스크립트에 선언된것을 말한다. 15 줄: cnt라는 변수를 생성과 동시에 5라는 값을 할당해준다. 16 줄: DFS1() 호출 17 줄: DFS2() 호출 16번줄 에 DFS1() 호출을 하여 5번줄에 위치한 DFS1()함수가 실행된다. print(cnt) 즉 cnt변수 값이 출력되는데 cnt 라는 변수가 자기 자신의 지역변수인지 확인합니다. 자기의 지역변수가 아니라면 전역변수인지 확인합니다. 둘다 아니라면 에러가 발생한다. 여기서는 6번줄의 cnt는 자기 자신의 지역변수가 아니다. 그렇기 때문에 전역변수로 작동하게 됩니다. 그래서 5과 출력된다. 17번줄에 DFS2() 호출 하여 8번줄에 위치한 DFS2()함수가 실행 된다. 만약 변수cnt 가 5가 맞다면 cnt 값을 출력하는 코드.. 2022. 10. 8.
합이 같은 부분집합(DFS) 18줄 : a 변수에다 n개의 원소를 입력받은 값을 저장한다. 19줄 : total 변수에 a리스트의 모두 더한 값을 저장한다. 20줄: DFS 함수호출! 2022. 10. 7.
728x90
반응형