아보카도 Blog
프로그래머스스쿨: 행렬 덧셈, k번째 수 본문
설연휴 마지막 날에 알고리즘 문제 풀었다.
우선 행렬의 덧셈
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]을 통해 나타내기.
'자료구조, 알고리즘' 카테고리의 다른 글
프로그래머스 스쿨 코딩테스트 입문: [1차] 비밀지도 (0) | 2022.12.22 |
---|---|
프로그래머스 스쿨 코딩테스트 입문: 평행 (0) | 2022.12.22 |
프로그래머스 스쿨 코딩테스트 입문: 직각삼각형 출력하기 (0) | 2022.12.22 |
프로그래머스 스쿨 코딩테스트 입문: 2차원으로 만들기 (0) | 2022.12.14 |
자료구조, 알고리즘 5주차 (0) | 2022.12.12 |