프로그래머스 lv0 - 특별한 이차원 배열 1
2023. 7. 2. 17:18ㆍIT
문제 설명
정수 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문으로 초기화.
'IT' 카테고리의 다른 글
프로그래머스 lv0 - 정수를 나선형으로 배치하기 (0) | 2023.07.02 |
---|---|
프로그래머스 lv0 - l로 만들기 (0) | 2023.07.02 |
프로그래머스 lv0 - 배열의 원소 삭제하기 (0) | 2023.07.02 |
프로그래머스 lv0 - 문자열 정수의 합 (0) | 2023.07.02 |
프로그래머스 lv0 - 전국 대회 선발 고사 (0) | 2023.07.02 |