인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

siny7177님의 프로필 이미지
siny7177

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

9. 수열 추측하기(순열, 파스칼 응용)

global 선언

작성

·

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]처럼 리스트 전체를 할당할 때를 의미합니다. 리스트에 하나의 값을 변경하거나 추가하는 것은 할당으로 보지 않습니다.

siny7177님의 프로필 이미지
siny7177

작성한 질문수

질문하기