728x90
📚문제
📝풀이
# 2738번 행렬 덧셈
n, m = map(int, input().split())
matrix_a = []
matrix_b = []
for _ in range(n):
row = list(map(int, input().split()))
matrix_a.append(row)
for _ in range(n):
row = list(map(int, input().split()))
matrix_b.append(row)
for row in range(n):
for col in range(m):
print(matrix_a[row][col] + matrix_b[row][col], end=' ')
print()
첫번째 for문 하는 부분까진 했는데 숫자를 입력받는 부분에서 막혔다.
세 변수에 할당하는 방법을 생각했었는데 그것보다
그냥 리스트로 묶어서 변수 row에 할당한다. 그 다음 행렬 A에 저장하면 훨씬 간단하고 행렬 형태에 가까워진다.
덧셈하는 부분도 row와 col로 반복되는 변수명을 설정해주어 직관적으로 이해가 잘 된다.
구글링하여 제일 직관적이고 깔끔한 풀이를 참고 하였다.
(출처 : https://develop247.tistory.com/93)
+ numpy 라이브러리를 활용하는 방법
첫번째 코드문은 간단하지는 않지만 이런 방법도 있다는 참고용으로
두 번째 코드문은 훨씬 간단하기는 하지만 ...어쨌든 알고리즘과 파이썬 실력을 키우는 거니까 이것도 참고용으로
# 2. numpy 라이브러리 활용
import numpy as np
n, m = map(int, input(f'행과 열의 개수를 차례로 입력하세요: ').split())
# 사용자로부터 값 입력받아 n * m 행렬 생성
matrix = np.zeros((n, m))
for i in range(n):
for j in range(m):
value = int(input(f"값 입력 [{i+1}, {j+1}]: "))
matrix[i][j] = value
print(matrix)
import numpy as np
# 행렬 A
A = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 행렬 B
B = np.array([[9, 8, 7],
[6, 5, 4],
[3, 2, 1]])
# 행렬간의 합 계산
C = np.add(A, B)
print(C)
728x90
'Python(알고리즘,문제풀이) > BOJ (Bronze V)' 카테고리의 다른 글
10798번 / 세로읽기 (0) | 2023.07.07 |
---|---|
2566번 / 최댓값 (0) | 2023.07.06 |
25206번 / 너의 평점은 (0) | 2023.07.04 |
1316번 /그룹 단어 체커 (0) | 2023.07.03 |
2941번 / 크로아티아 알파벳 (0) | 2023.07.02 |