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

R J님의 프로필 이미지
R J

작성한 질문수

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

섹션3, 봉우리 문제에 관해서 질문 드립니다.

작성

·

189

0

안녕하세요 섹션3, 봉우리 문제에 관해서 질문 드립니다.

input을 받은 이후에 0인 행과 열을 추가하는데서 질문이 있습니다. 강사분께서 코드를 짜기를
num.insert(0, [0] * a)
num.append([0] * a) 이렇게 하셨습니다. 그러다가 코드 반복을 줄이기 위해서 저같은 경우는 

default라는 변수를 만들어서 아래와 같이 입력하니 결과치가 다르게 나오더군요.

default = [0] * a

num.insert(0, default)
num.append(default) 

결과는 스크린샷으로 첨부했습니다. 제가 여기서 궁금한건 왜 첫 행과 마지막행에 강사님과 다른 제 코드를 입력하였을때 왜

0이 두번 더 추가되는지 알고 싶습니다. 제가 봤을때는 서로 다른게 없어 보이는데..  감사합니다.

답변 2

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

num이라는 이차원 리스트에 추가된 첫행과 마지막행은 default라는 리스트가 복제되어 있는 것입니다. num의 첫행과 마지막행은 default라는 동일리스트입니다.  마지막에 default가 어떻게 변해 있는지 출력해보세요. 그리고 마지막에 num이차원리스트를 출력할 때는 첫행과 마지막행은 default 리스트를 출력하는 것입니다.

0

R J님의 프로필 이미지
R J
질문자

감사합니다. 

R J님의 프로필 이미지
R J

작성한 질문수

질문하기