문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
arr1 | arr2 | return |
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4], [6]] |
▶️ 내 코드(정답)
def solution(arr1 = [[1,2],[2,3]], arr2 =[[3,4],[5,6]]):
answer = []
for i in range(len(arr1)):
list1 = []
for j in range(len(arr1[0])):
list1.append(arr1[i][j] + arr2[i][j])
print(list1)
answer.append(list1)
return answer
❗️어려웠던 점
반복문에 대한 이해 부족으로 자꾸 오류가 발생.
▶️ 오류 코드
def solution(arr1 = [[1,2],[2,3]], arr2 =[[3,4],[5,6]]):
answer = []
for i in range(len(arr1)):
list1 = []
for j in range(len(arr1[0])):
list1.append(arr1[i][j] + arr2[i][j])
print(list1)
answer.append(list1)
return answer
❓테스트 결과
return 전 ‘answer.append(list1)’의 위치 때문에 값이 반복되어 출력됨.
list1의 프린트 값인 [4], [4, 6] , [7], [7, 9]을 비어 있는 리스트 answer에 담았으므로
[[4], [4, 6] , [7], [7, 9]] 같은 출력을 예상.
→ [[4, 6], [4, 6], [7, 9], [7, 9]]가 출력됨.
왜???????????
👁️👁️참고할만한 코드
#1. zip 활용 + 한 줄 작성
def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a,b)] for a, b in zip(A,B)]
return answer
행렬/들여쓰기 보충 학습 - 위키독스
194번 - 반복문 들여쓰기([[]] 생성)
data = [
[ 2000, 3050, 2050, 1980],
[ 7500, 2050, 2050, 1980],
[15450, 15050, 15550, 14900]
]
result = []
for line in data:
sub = []
for column in line:
sub.append(column * 1.00014)
result.append(sub)
print(result)
#결과값
[
[2000.28, 3050.427, 2050.2870000000003, 1980.2772],
[7501.05, 2050.2870000000003, 2050.2870000000003, 1980.2772],
[15452.163, 15052.107, 15552.177, 14902.086000000001]
]
195번 - 반복문 들여쓰기 (행렬 슬라이싱)
ohlc = [["open", "high", "low", "close"],
[100, 110, 70, 100],
[200, 210, 180, 190],
[300, 310, 300, 310]]
#출력할 값
100
190
310
정답 코드
for line in ohlc[1:]:
print(line[-1])
'Python > 기초 실습' 카테고리의 다른 글
문자열 | 알고리즘 코드 카타 36번 - 문자열 다루기 기본(range) (0) | 2024.05.07 |
---|---|
map | 알고리즘 코드 카타 38번 - 직사각형 별찍기 (0) | 2024.05.07 |
반복문 | 위키독스 185번 - 리스트와 행렬 (0) | 2024.05.07 |
위키독스 복습 1 - 120번대 (0) | 2024.05.02 |
반복문 | Dictionary 활용 (0) | 2024.04.30 |