https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 다익스트라
  • MST
  • 이분 탐색
  • 유니온 파인드
  • python3
  • 유클리드호제법
  • 파이썬
  • 최대공약수
  • 그리디
  • 백트래킹
  • 프로그래머스
  • counter
  • heapq
  • Python
  • BFS
  • DFS
  • 다이나믹 프로그래밍
  • 최단경로
  • 스택
  • 재귀함수
  • 재귀
  • 최소힙
  • 12015
  • 다이나믹프로그래밍
  • LIS
  • 큐
  • 그래프
  • 백준
  • DP
  • 이분탐색

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

알고리즘

백준 2740 풀이 (행렬 곱셈)

2021. 3. 16. 20:44

이 문제는 어렵지는 않았지만 살짝 귀찮은 문제였다. 나는 당연히 무식하게 for 돌려서 풀었다.

import sys
n,m = map(int, sys.stdin.readline().split())
a = []
for _ in range(n):
    a.append(list(map(int,sys.stdin.readline().split())))
n2,m2 = map(int, sys.stdin.readline().split())
b=[]
for _ in range(n2):
    b.append(list(map(int,sys.stdin.readline().split())))
final = []
for i in range(n):
    t = a[i]
    total = []
    for j in range(m2):
        tmp = []
        t = 0
        for row in range(n2):
            tmp.append(b[row][j])
        for n in range(n2):
            t+= a[i][n] * tmp[n]
        total.append(t)
    final.append(total)
for i in final:
    for j in i:
        print(j,end=' ')
    print()

답은 맞았지만 문제의 의도가 이렇게 푸는게 맞는지 다른 고수의 코드를 구경하러 갔다.

그랬더니 미리 배열을 구해서 풀었더니 훨씬 코드가 깔끔하게 떨어지는것을 볼 수 있었다.

그래서 나도 코드를 수정했다.

import sys
n,m = map(int, sys.stdin.readline().split())
a = []
for _ in range(n):
    a.append(list(map(int,sys.stdin.readline().split())))
n2,m2 = map(int, sys.stdin.readline().split())
b=[]
for _ in range(n2):
    b.append(list(map(int,sys.stdin.readline().split())))
final = [[0 for i in range(m2)] for i in range(n)]
for i in range(n):
    for j in range(m2):
        for n in range(m):
            final[i][j] += a[i][n] * b[n][j]
            
for i in final:
    for j in i:
        print(j,end=' ')
    print()

'알고리즘' 카테고리의 다른 글

백준 11444 풀이 (피보나치 수 6, 분할 정복, 행렬 제곱)  (0) 2021.03.17
백준 10830 풀이 (행렬 제곱, 분할 정복, 거듭제곱)  (0) 2021.03.16
백준 11401 풀이 (이항 계수 3, 페르마의 소정리, 정수론, 분할알고리즘)  (0) 2021.03.15
#4 알고리즘 공부 3/12 리뷰  (0) 2021.03.12
백준 1629 풀이 (곱셈, 분할정복, 파이썬)  (0) 2021.03.12
    '알고리즘' 카테고리의 다른 글
    • 백준 11444 풀이 (피보나치 수 6, 분할 정복, 행렬 제곱)
    • 백준 10830 풀이 (행렬 제곱, 분할 정복, 거듭제곱)
    • 백준 11401 풀이 (이항 계수 3, 페르마의 소정리, 정수론, 분할알고리즘)
    • #4 알고리즘 공부 3/12 리뷰
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바