프로그래머스 lv0 - 특별한 이차원 배열 1

2023. 7. 2. 17:18IT

문제 설명

정수 n이 매개변수로 주어질 때, 다음과 같은 n × n 크기의 이차원 배열 arr를 return 하는 solution 함수를 작성해 주세요. arr[i][j] (0 ≤ i, j < n)의 값은 i = j라면 1, 아니라면 0입니다.

안되는 코드

python에서 nested list는 deep copy가 안된다...

answer[0], answer[1]의 reference는 다르지만

answer[0][0]과 answer[0][1]의 reference는 같아서, answer[0][0]을 1로 바꾸면 answer[0][1], answer[0][2] 모두 1로 바꿔진다.

nested list를 deepcopy하려면 slicing이 가장 빠르다.

정답 코드

def solution(n):
    answer=[[0]*n for i in range(n)]
    for i in range(n): answer[i][i]=1
    return answer

매번 append 하는 것보다 초기화 후 수정이 훨씬 빠름.

nested list를 만들 때는 for문으로 초기화.