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

김윤정님의 프로필 이미지
김윤정

작성한 질문수

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

6. 알파코드(DFS)

res=[0]*n과 res=[]의 차이?

작성

·

477

0

안녕하세요. 선생님.

강의 잘 듣고 있는데, 한 가지 궁금한 점이 있어서 문의드립니다. 문제를 풀다보면 정답을 구하는 과정에서 정답에 필요한 값을 저장할 때 

형식이 어떨때는 res=[0]*n로 정할때가 있고 어떨때는 res=[]로 기본값을 설정할 때가 있습니다.

res는 0으로 값을 초기화시킨다는 것이고, res는 빈 리스트를 기본값으로 한다는 것인데,

언제 위 둘을 사용하는지 궁금합니다.

알파코드 문제를 예시로 들었을 때, res=[]으로 하면 오류가 나더군요.

강의 잘 듣고 있고, 답변 기다리겠습니다.

감사합니다.

답변 1

0

res = [0]*n은 n개의 0이 나열된 길이 n의 리스트를 선언하는 것이고 []는 비어있는 리스트를 선언합니다.

len(res)를 해보면 전자는 n이 나올 거고 후자는 0이 나올 겁니다.

전자에서는 미리 0으로 채워놓고 상황에 따라 그 0을 다른 숫자로 대치시켜 마지막에 0의 개수 혹은 0이 아닌 개수를 판단해서 무언가를 실행할 때 쓸테고, 비어있는 리스트는 상황에 따라 리스트를 채워간 후에 마지막에 그 리스트를 반환한다거나 할 때 사용할 것 같습니다.

상황에 따라 다르니 그때그때 맞닥들이실 때 조금씩 살펴보셔도 될 것 같습니다.

김윤정님의 프로필 이미지
김윤정

작성한 질문수

질문하기