[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ (JAVA)

2025. 2. 1. 22:39ยท๐Ÿ’ช Algorithm
๋ฐ˜์‘ํ˜•

๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/12949go

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋ฌธ์ œ ์š”์•ฝ

2์ฐจ์› ํ–‰๋ ฌ arr1๊ณผ arr2๋ฅผ ๊ณฑํ•œ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ

 

์ œํ•œ

  • ํ–‰๋ ฌ arr1, arr2์˜ ํ–‰๊ณผ ์—ด์˜ ๊ธธ์ด๋Š” 2 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ํ–‰๋ ฌ arr1, arr2์˜ ์›์†Œ๋Š” -10 ์ด์ƒ 20 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ๊ณฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฐ์—ด๋งŒ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

 

ํ’€์ด

ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. arr1์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰๊ณผ arr2์˜ ์ฒซ ๋ฒˆ์งธ ์—ด์˜ ์›์†Œ๋“ค์„ ๊ฐ๊ฐ ๊ณฑํ•œ ํ›„, ๊ทธ ํ•ฉ์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. → ๊ฒฐ๊ณผ ํ–‰๋ ฌ์˜ 1ํ–‰ 1์—ด ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.
  2. arr1์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰๊ณผ arr2์˜ ๋‘ ๋ฒˆ์งธ ์—ด์˜ ์›์†Œ๋“ค์„ ๊ฐ๊ฐ ๊ณฑํ•œ ํ›„, ๊ทธ ํ•ฉ์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. → ๊ฒฐ๊ณผ ํ–‰๋ ฌ์˜ 1ํ–‰ 2์—ด ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.
  3. ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋“  ํ–‰๊ณผ ์—ด์— ๋Œ€ํ•ด ๊ณ„์‚ฐ์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

arr1์ด (N*L) ํฌ๊ธฐ์ด๊ณ  arr2๊ฐ€ (L*M) ํฌ๊ธฐ๋ผ๋ฉด, ๊ฒฐ๊ณผ ํ–‰๋ ฌ์€ (N*M) ํฌ๊ธฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

๊ฒฐ๊ณผ ํ–‰๋ ฌ์˜ ๊ฐ ์›์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜๋ ค๋ฉด L๋ฒˆ ๊ณฑ์…ˆํ•œ ํ›„ ๋งˆ์ง€๋ง‰์— ์ด ๊ฒฐ๊ณผ๋“ค์„ ํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ–‰๋ ฌ ๊ณฑ์˜ ์ด ์—ฐ์‚ฐ ํšŸ์ˆ˜๋Š” O(N*M*L)์ž…๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ์ œํ•œ ์กฐ๊ฑด์„ ๋ณด๋ฉด N, M, L์˜ ๊ฐ’์€ ๋ชจ๋‘ ์ตœ๋Œ€ 100์ด๋ฏ€๋กœ, ์ตœ๋Œ€ 10^6๋ฒˆ์˜ ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค.

 

์ฝ”๋“œ

import java.util.*;
class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {
        int N=arr1.length;
        int L=arr1[0].length;
        int M=arr2[0].length;
        int[][] answer = new int[N][M];

        for(int i=0; i<N; i++){
            for(int j=0; j<M; j++){
                for(int k=0; k<L; k++){
                    answer[i][j] += arr1[i][k] * arr2[k][j];
                }
            }
        }
        return answer;
    }
}

[์‹œ๊ฐ„ ๋ณต์žก๋„]

  • arr1: N*L ํฌ๊ธฐ์˜ ํ–‰๋ ฌ
  • arr2: L*M ํฌ๊ธฐ์˜ ํ–‰๋ ฌ
  • N,L,M์˜ ๋ฒ”์œ„๋Š” ๋ชจ๋‘ ๋™์ผํ•˜๋ฏ€๋กœ ์ตœ์ข… ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” 3์ค‘ for๋ฌธ์œผ๋กœ ์ธํ•ด O(N^3)
๋ฐ˜์‘ํ˜•

'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฉ๋ฌธ ๊ธธ์ด (JAVA)  (2) 2025.02.03
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ (JAVA)  (1) 2025.02.02
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์˜๊ณ ์‚ฌ (JAVA)  (1) 2025.01.30
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ (JAVA)  (0) 2025.01.30
'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฉ๋ฌธ ๊ธธ์ด (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์˜๊ณ ์‚ฌ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ (JAVA)
dev-heyjin
dev-heyjin
  • dev-heyjin
    ๊ฐœ๋ฐœ ๊ธฐ๋ก
    dev-heyjin
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (56)
      • ๐ŸŽฏ Programming (8)
      • ๐Ÿ’ช Algorithm (16)
      • โš™๏ธ CS (31)
        • ๋„คํŠธ์›Œํฌ (15)
        • ์šด์˜์ฒด์ œ (15)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ํ•ดํ‚น
    DB
    RDS
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
dev-heyjin
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ (JAVA)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”