• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

21.07.02 05:12 작성 조회수 346

0

안녕하세요. 선생님.

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

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

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

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

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

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

감사합니다.

답변 1

답변을 작성해보세요.

0

k900327s님의 프로필

k900327s

2021.07.02

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

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

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

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