반응형
함수 내부 변수 선언
함수를 새롭게 만들어서 count 를 해주려고 하면 오류가 생겨서 애먹은 적이 종종 있다. 특히 dfs같은 경우에는 함수 안에서 cnt를 선언하면 재귀로 인해 함수만 돌아가면 cnt= 0으로 초기화되는 마법같은 일이 일어날 수 있다.
그래서 cnt변수를 어떻게 사용해야 하는지 정리해보았다.
두 가지 케이스가 있다.
1. def solution 안에서 변수 선언 (nonlocal)
def solution(a):
cnt = 0
def dfs(x, y):
nonlocal cnt
return
이때처럼 nonlocal 을 사용하면 된다. (= '지역변수는 아닌 변수를 사용'할 거라고 말하는 것)
바깥에 있는 지역변수를 변경하려면 내부 함수에서 nonlocal 선언을 해줘야 한다.
2. def solution 밖에서 변수 선언 (global)
def solution():
global cnt
def dfs():
global cnt
global로 변수 선언을 하면 해당 변수는 전역변수가 된다.
반응형
'코딩테스트 대비 > 코딩테스트 꿀팁' 카테고리의 다른 글
| [Python] split vs strip (0) | 2023.09.20 |
|---|---|
| 나 보려고 작성한 취업 도움 되는 사이트 모음 (0) | 2023.07.20 |
| 코테 유형 분석하기(DFS, BFS, 스택, 큐, 힙, DP..) (0) | 2023.06.22 |
| [Python] 코테 빈출 함수 (0) | 2023.06.20 |
| [Python] 유용한 코드 모음 (0) | 2023.06.20 |