[アルゴリズム]マトリクスの加算
※この写真と投稿内容の問題は、ProgrammersのWebサイトから抜粋しています.
に質問 행렬의 덧셈은
행과 열의 크기가 같은 두 행렬의
같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.
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]]
ほどく
My Code
def solution(arr1, arr2):
ls = []
for i in range(len(arr1)) :
answer = [arr1[i][k] + arr2[i][k] for k in range(len(arr1[i]))]
ls.append(answer)
return(ls)
筆者はls
の空リストを再作成し,for文で得られた値append
の方法を用いた.
同じ位置値を呼び出す方法については、len()
関数で指定し、for文を使用してすべての位置を呼び出す.
これはリスト計算に慣れていない問題です.
説明する
(1)def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)]
return answer
実際、このコードを見て理解するのに少し時間がかかりました.
本当にきれいできれいなコードです.zip()
関数の使用が印象的でした.
最初の繰り返し、すなわち一番外側のFor文で
2つの入力値の行列は、zip()
によって組み合わせられ、各行列には同じ位置にある内部リストがある.
2回目の繰り返し、つまり一番奥のFor文で
1回目の反復では、zip()
関数により、同じ位置にある内部要素をペアリングして計算する.
この問題によりzip関数に関する多くの知識を学び,複数の変数の特定の値をペアリングすることができる.👏👏
(2)def sumMatrix(A,B):
for i in range(len(A)) :
for j in range(len(A[0])):
A[i][j] += B[i][j]
return A
この解釈.
ダブルForゲートは上記の説明と同じです.
基準として、同じ位置にある2番目の行列係数の値は、1番目の行列係数を基準として+=
に加算される.
標準の最初の行列係数を返す方法を用いた.
Reference
この問題について([アルゴリズム]マトリクスの加算), 我々は、より多くの情報をここで見つけました
https://velog.io/@yummygyudon/알고리즘-행렬의-덧셈
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
행렬의 덧셈은
행과 열의 크기가 같은 두 행렬의
같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.
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]]
My Code
def solution(arr1, arr2):
ls = []
for i in range(len(arr1)) :
answer = [arr1[i][k] + arr2[i][k] for k in range(len(arr1[i]))]
ls.append(answer)
return(ls)
筆者はls
の空リストを再作成し,for文で得られた値append
の方法を用いた.同じ位置値を呼び出す方法については、
len()
関数で指定し、for文を使用してすべての位置を呼び出す.これはリスト計算に慣れていない問題です.
説明する
(1)
def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)]
return answer
実際、このコードを見て理解するのに少し時間がかかりました.本当にきれいできれいなコードです.
zip()
関数の使用が印象的でした.最初の繰り返し、すなわち一番外側のFor文で
2つの入力値の行列は、
zip()
によって組み合わせられ、各行列には同じ位置にある内部リストがある.2回目の繰り返し、つまり一番奥のFor文で
1回目の反復では、
zip()
関数により、同じ位置にある内部要素をペアリングして計算する.この問題によりzip関数に関する多くの知識を学び,複数の変数の特定の値をペアリングすることができる.👏👏
(2)
def sumMatrix(A,B):
for i in range(len(A)) :
for j in range(len(A[0])):
A[i][j] += B[i][j]
return A
この解釈.ダブルForゲートは上記の説明と同じです.
基準として、同じ位置にある2番目の行列係数の値は、1番目の行列係数を基準として
+=
に加算される.標準の最初の行列係数を返す方法を用いた.
Reference
この問題について([アルゴリズム]マトリクスの加算), 我々は、より多くの情報をここで見つけました https://velog.io/@yummygyudon/알고리즘-행렬의-덧셈テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol