KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (486)
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • Git (5)
    • Web (24)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • ETC (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)
    • PS (431)
      • 백준 (187)
      • Programmers (104)
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • 정렬
  • tree
  • Level 1
  • Level 0
  • 수학
  • Level1
  • C
  • js
  • string
  • 그래프
  • 백준
  • recursion
  • 제코베 JS 100제
  • 문자열
  • Level 2
  • programmers
  • LeetCode
  • 다이나믹 프로그래밍
  • codeup
  • C++

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun

Coding Note

PS/Programmers

Programmers / Level 2 / 행렬의 곱셈 / C++

2022. 2. 11. 19:48
문제 설명

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

 

제한 조건
  • 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.
  • 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다.
  • 곱할 수 있는 배열만 주어집니다.
입출력 예
arr1 arr2 return
[[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]]

 

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    vector<vector<int>> answer;

    for(int i=0; i<arr1.size(); i++) {
        vector<int> tmp;
        for(int j=0; j<arr2[0].size(); j++) {
            int sum = 0;
            for(int k=0; k<arr2.size(); k++) {
                sum += arr1[i][k] * arr2[k][j];
            }
            tmp.push_back(sum);
        }
        answer.push_back(tmp);
    }

    return answer;
}

행렬의 기본 곰셈식만 알고 있으면 반복문으로 간단히 나타낼 수 있다.

처음에 코드로 옮길때 인덱스를 어떻게 설정해야 할지 헷갈리지만 직접 그리면서 하다보면 쉽게 이해할 수 있다.

저작자표시 (새창열림)

'PS > Programmers' 카테고리의 다른 글

Programmers / Level 2 / 짝지어 제거하기 / C++  (0) 2022.02.21
Programmers / Level 2 / N개의 최소공배수 / C++  (0) 2022.02.18
Programmers / Level 2 / 땅따먹기 / C++  (0) 2022.02.10
Programmers / Level 2 / 다음 큰 숫자 / C++  (0) 2022.02.08
    'PS/Programmers' 카테고리의 다른 글
    • Programmers / Level 2 / 짝지어 제거하기 / C++
    • Programmers / Level 2 / N개의 최소공배수 / C++
    • Programmers / Level 2 / 땅따먹기 / C++
    • Programmers / Level 2 / 다음 큰 숫자 / C++
    KimMinJun
    KimMinJun

    티스토리툴바