😁 빅데이터 문제 풀기 & Study/- BAEKJOON 문제

[2738] 행렬 덧셈 / 파이썬 - 쉽게 풀어 작성해보기(numpy는 왜 안되는겨!!)

또방91 2022. 7. 4. 11:37
728x90

 

 

 

 

✏️ 문제 링크

https://www.acmicpc.net/problem/2738

 

2738번: 행렬 덧셈

첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같

www.acmicpc.net


실패....ㅠㅠ

numpy는 백준에서 지원하지 않는다고 한다..... ㅋ 그래서 계속 실패.... ㅠ

import numpy as np

n,m = map(int,input().split())

# n개줄에 원소m개가 주어짐
a,b= [],[]
for i in range(n):
    a.append( list(map(int,input().split())) )
for i in range(n):
    b.append( list(map(int,input().split())) )


A= np.array(a)
B= np.array(b)
result= A+B 

#array 형태를 리스트로 바꿔주기
result_2= result.tolist()

for i in result_2:
    print(" ".join(map(str,i)))

정답은 ??

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# [1단계] n,m 열,행 입력받기
n,m = map( int, input().split() )
 
# [2단계] A,B 행렬 입력받기 
A,B= [],[] 
# --> 이해하기 쉽게 A,B 각각 쓰자...ㅋㅋㅋ
for _ in range(n): #n개줄
    A.append(list(map(int,input().split())))    
for _ in range(n): #n개줄
    B.append(list(map(int,input().split())))
 
# [3단계] 이중리스트 덧셈 더하기
for i in range(n): #행(n)
    X,Y = A[i], B[i] #한 행씩 더하도록
    result= [ X[j]+Y[j] for j in range(m)] # 더하는 것은 열(m) 개수만큼 진행됨    
    print" ".join(map(str, result)) ) # 각 값이 공백으로 출력 - join은 문자열만 사용가능하므로!
cs

 

마지막 3단계 중  'result'  작성에 대해 궁금하면 아래 예시를 참고하기!

a=[0,0,0]
b=[1,2,3]

a+b  
#---> 출력 [0, 0, 0, 1, 2, 3]

[ a[i]+b[i] for i in range(len(a)) ]  
#---> 출력 [1, 2, 3]

 


😎 오늘의 한줄평

 

파이썬 실력이 떨어졌나부당.......

list comprehension 사용하여 하는 연산이 헷갈린당

 

 

 

728x90