자료구조, 알고리즘
프로그래머스스쿨: 행렬 덧셈, k번째 수
수수 아보카도
2023. 1. 24. 21:42
설연휴 마지막 날에 알고리즘 문제 풀었다.
우선 행렬의 덧셈
def solution(arr1, arr2):
answer = []
for i in range(len(arr1)):
tmp = []
for j in range(len(arr1[i])):
tmp.append(arr1[i][j]+arr2[i][j])
answer.append(tmp)
return answer
이중 for문을 사용해서 풀었다.
새로 배운 내용은, for문 쓸 때 for i in arr1, 이런식으로 단순하게 쓰기 보다는
range(len)을 사용해서 단위행렬처럼 행렬의 틀 먼저 만들어준 다음,
두 행렬을 더하는 방법이다. for문에서 i와 j를 통해서 해당 행렬의 숫자를 지정해주기.
두번쨰 문제 k번째 수
def solution(array, commands):
answer = []
for i in commands:
arr = array[i[0]-1:i[1]]
arr1 = sorted(arr)
arr2 = arr1[i[2]-1]
answer.append(arr2)
return answer
처음에는 이중 for문 써서 commands의 첫번째, 두번째 수를 뽑아와야 싶었다.
하지만 문제 풀이의 핵심은 :을 사용해서 범위 range를 설정해주는 것이었다.
세번째 수는 k번째 수이므로 array[i[2] - 1]을 통해 나타내기.