프로그래머스 - 행렬의 곱셈 [연습문제]

2026. 1. 25. 20:48·코테

문제 설명:

2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해 주세요.


문제 예시:

arr1 arr2 result
[[1, 4], [3, 2], [4, 1]] [[3, 3], [3, 3]] [[15, 15], [15, 15], [15, 15]]
[[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]]

문제 해결:

import numpy as np

def solution(arr1, arr2):
    answer = [[]]
    np1 = np.array(arr1)
    np2 = np.array(arr2)
    result = np1@np2
    return result.tolist()

numpy를 사용하면 한 번에 풀린다. 하지만 제한 조건이 많이 여유롭였기에 사용 가능했다. 다른 코드를 봐보자

def solution (arr1, arr2):
	return [[sum(a*b for a, b in zip(A_row,B_col)) for B_col in zip(*B)] for A_row in A]

행렬 곱은 기본적으로 a1*b1 + a2*b1 = a11으로 간다.

이때 가장 바깥부터 보면 A를 A_row로 돌면서 풀고 있다

이후, zip(*B)를 보면 B를 한 번 unpack 한다 그러면

arr2 = [[1, 2, 3], [4, 5, 6]] 이 *B = (1,4), (2,5), (3,6)으로 unpack 된다.

따라서 B_col에서는 (1,4) 이런 식으로 들어가게 된다.

이후 계산은 zip(A_row, B_col)로 한번 zip 하여 a, b로 풀고 있으니

곱하여 계산된다.

 

example2로 예시를 들면

zip(*B)

B_col = (5, 2, 3), (4, 4, 1), (3, 1, 1)

A_row = (2, 3, 2), (4, 2, 4), (3, 1, 4)

가 나오고

zip(A_row, B_col)로 a*b를 하면

5*2, 2*3, 3*2로 각각을 곱하고 마지막으로

sum()을 하므로 전체 값을 더한 값 즉, a_11이 나오게 된다.

'코테' 카테고리의 다른 글

프로그래머스 - 리코쳇 로봇 [연습문제]  (0) 2026.01.26
프로그래머스 - 거스름돈 [연습문제]  (0) 2026.01.26
프로그래머스 - 의상 [해시]  (1) 2026.01.25
프로그래머스 - 튜플 [2019 카카오 개발자 겨울 인턴십]  (1) 2026.01.21
프로그래머스 - 기능개발 [스택/큐]  (0) 2026.01.20
'코테' 카테고리의 다른 글
  • 프로그래머스 - 리코쳇 로봇 [연습문제]
  • 프로그래머스 - 거스름돈 [연습문제]
  • 프로그래머스 - 의상 [해시]
  • 프로그래머스 - 튜플 [2019 카카오 개발자 겨울 인턴십]
junsky00
junsky00
대기만성?
  • junsky00
    편안한 마음으로 꽃 구경하기
    junsky00
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • 코테 (21)
      • IT 뉴스 (4)
      • SKALA (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    탐색
    PAPER
    보고서 생성
    큐
    스택
    LLM 잘 쓰기
    코테
    코딩 테스트
    AI agent
    구현
    파이썬
    프로그래머스
    BFS
    AI
    Python
    DP
    카카오
    SK AX
    동적 프로그래밍
    Google Paper
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
junsky00
프로그래머스 - 행렬의 곱셈 [연습문제]
상단으로

티스토리툴바