Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 그리디
- revalidatepath
- 코어자바스크립트
- JavaScript
- React
- 프론트엔드
- 토이 프로젝트
- 스택
- react pattern
- 코딩테스트
- 리덕스
- styled component
- react router dom
- 리액트
- 토이프로젝트
- Form
- 자바스크립트
- TypeScript
- 리액트 라우터 돔
- Supabase
- 동적계획법
- 타입스크립트
- 프로그래머스
- React Query
- tanstack query
- reduxtoolkit
- 리액트 패턴
- Next.js
- 코테
- tailwind
Archives
- Today
- Total
느려도 한걸음씩
문제 23 - 두 행렬을 곱한 후 전치 행렬 만들기(시뮬레이션) 본문
문제 설명
- arr 과 arr2는 정수값으로 이루어진 3 × 3 행렬입니다.
- 이 두 행렬을 곱한 결과의 전체 행렬을 반환하는 solution() 함수를 구현하세요.
제약 조건
- arr, arr2는 각각 3 × 3 크기의 정수 행렬입니다.
입출력
입력
arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
arr2 = [
[9, 8, 7],
[6, 5, 4],
[3, 2, 1]
]
출력
[ [ 30, 84, 138 ], [ 24, 69, 114 ], [ 18, 54, 90 ] ]
내 정답 코드
function solution(arr, arr2) {
let m = arr.length; // 행렬 A의 행 개수
let n = arr[0].length; // 행렬 A의 열 개수 (B의 행 개수)
let p = arr2[0].length; // 행렬 B의 열 개수
// 결과 행렬 초기화 (m x p 크기)
let answer = Array.from({ length: m }, () => Array(p).fill(0));
// 두 행렬 곱하기
for (let i = 0; i < m; i++) {
for (let j = 0; j < p; j++) {
for (let k = 0; k < n; k++) {
answer[i][j] += arr[i][k] * arr2[k][j];
}
}
}
// ✅ 새로운 배열을 만들어 전치 행렬 저장
let transposed = Array.from({ length: p }, () => Array(m).fill(0));
for (let i = 0; i < m; i++) {
for (let j = 0; j < p; j++) {
transposed[j][i] = answer[i][j];
}
}
return transposed;
}
'알고리즘 > 코테대비 100문제' 카테고리의 다른 글
문제 25 - 이진 변환 반복하기(시뮬레이션) (0) | 2025.02.20 |
---|---|
문제 24 - 달팽이 수열 만들기(시뮬레이션) (0) | 2025.02.20 |
문제 22 - 배열 회전하기(시뮬레이션) (0) | 2025.02.19 |
문제 21 - 오픈 채팅방(해시) (0) | 2025.02.18 |
문제 20 - 카드 뭉치(큐) (0) | 2025.02.16 |