작성
·
237
0
global cnt만 선언하셨는데
ch, g , path도 global 선언 해야하는것 아닌가요?
위의 3 개를 global 선언 안해도 동작되는 이유도 궁금합니다!
답변 1
2
수열추측하기는 아닌것 같고, 경로탐색문제를 질문한 것이라 생각하고 답하겠습니다.
답을 하자면 함수에서 cnt=5 또는 cnt=cnt+1처럼 값을 할당하면 이 변수를 그 함수의 지역변수로 인식을 하게 됩니다. 그래서 global로 전역이라고 알려주는 것입니다.
ch, g, path는 값을 할당하지 않기 때문에 함수의 지역변수로 인식하지 않고 전역으로 자동 인식을 합니다. 굳이 global을 해 주지 않아도 됩니다.
리스트에 값을 할당한다는 의미는 ch[i]=1 처럼 하나의 인덱스 값을 변경하는 것이 아니라 ch=[1, 2]처럼 리스트 전체를 할당할 때를 의미합니다. 리스트에 하나의 값을 변경하거나 추가하는 것은 할당으로 보지 않습니다.