์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜2. Array(1, 2์ฐจ์› ๋ฐฐ์—ด) : ๊ฒฉ์žํŒ ์ตœ๋Œ€ํ•ฉ

2023. 10. 11. 14:05ใ†์ธํ”„๋Ÿฐ/์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ž…๋ฌธ : ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„

728x90

 

https://hyejin.tistory.com/1216

 

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜2. Array(1, 2์ฐจ์› ๋ฐฐ์—ด) : ๋“ฑ์ˆ˜ ๊ตฌํ•˜๊ธฐ

https://hyejin.tistory.com/1215 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜2. Array(1, 2์ฐจ์› ๋ฐฐ์—ด) : ์ ์ˆ˜ ๊ณ„์‚ฐ https://hyejin.tistory.com/1214 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜2. Array(1, 2์ฐจ์› ๋ฐฐ์—ด) : ๋’ค์ง‘์€ ์†Œ์ˆ˜ https

hyejin.tistory.com

-> ์ด์ „ ๋ฌธ์ œ ํ’€์ด 

 

 

 

9. ๊ฒฉ์žํŒ ์ตœ๋Œ€ํ•ฉ 

 

์„ค๋ช…

5*5 ๊ฒฉ์žํŒ์— ์•„๋ž˜๋กธ ๊ฐ™์ด ์ˆซ์ž๊ฐ€ ์ ํ˜€์žˆ์Šต๋‹ˆ๋‹ค.

N*N์˜ ๊ฒฉ์žํŒ์ด ์ฃผ์–ด์ง€๋ฉด ๊ฐ ํ–‰์˜ ํ•ฉ, ๊ฐ ์—ด์˜ ํ•ฉ, ๋‘ ๋Œ€๊ฐ์„ ์˜ ํ•ฉ ์ค‘ ๊ฐ€ ์žฅ ํฐ ํ•ฉ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

์ž…๋ ฅ

์ฒซ ์ค„์— ์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค.(2<=N<=50)

๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N์ค„์— ๊ฑธ์ณ ๊ฐ ์ค„์— N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์ž์—ฐ์ˆ˜๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

 

์ถœ๋ ฅ

์ตœ๋Œ€ํ•ฉ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ ์ž…๋ ฅ 1 

5
10 13 10 12 15
12 39 30 23 11
11 25 50 53 15
19 27 29 37 27
19 13 30 13 19

 

์˜ˆ์‹œ ์ถœ๋ ฅ 1

155

 

 

๋ฌธ์ œ ํ’€์ด 1

public int solution(int n, int[][] num) {
    ArrayList<Integer> tmp = new ArrayList<>();

    int sum3 = 0;
    int sum4 = 0;
    for (int i = 0; i < num.length; i++) {
        int sum = 0;
        int sum2 = 0;
        for (int j = 0; j < num[i].length; j++) {
            sum += num[i][j];
            sum2 += num[j][i];
        }
        sum3 += num[i][i];
        sum4 += num[i][n-1 - i];
        tmp.add(sum);
        tmp.add(sum2);
        tmp.add(sum3);
        tmp.add(sum4);
    }

    return tmp.stream().max(Integer::compareTo).get();
}

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป : ์ด ๋ฌธ์ œ๋Š” ๊ฐ ํ–‰์˜ ํ•ฉ, ๊ฐ ์—ด์˜ ํ•ฉ, ๋Œ€๊ฐ์„ ์˜ ํ•ฉ์„ ๊ฐ๊ฐ ๊ตฌํ•ด์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•œ๋‹ค. 

2์ฐจ์› ๋ฐฐ์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. 

์šฐ์„ , sum1 ์€ ํ–‰์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— num[i][j] ์˜ ํ•ฉ ์ด๊ณ , sum2๋Š” ์—ด์˜ ํ•ฉ์„ ๊ตฌํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— num[j][i] ์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ณ  

sum3 ์€ ์™ผ์ชฝ์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๋Œ€๊ฐ์„ ์˜ ํ•ฉ์ด๋ฏ€๋กœ num[i][i]์˜ ํ•ฉ์„ ๊ตฌํ•ด์ฃผ๊ณ , sum4์—๋Š” ์˜ค๋ฅธ์ชฝ์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๋Œ€๊ฐ์„ ์˜ ํ•ฉ์ด๋ฏ€๋กœ num[i][n-1-i] ์˜ ํ•ฉ์„ ๊ตฌํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

๋‚˜๋Š” ์ด ๊ฐ’๋“ค์„ ArrayList์— ๋‹ด๊ณ , ๊ทธ ๋‹ค์Œ stream์˜ max ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•ด ๋ฆฌํ„ดํ–ˆ๋‹ค. 

 

 

 

๋ฌธ์ œ ํ’€์ด 2

public int solution2(int n, int[][] arr) {
    int answer = Integer.MIN_VALUE;
    int sum1, sum2;  // sum1 ํ–‰์˜ ํ•ฉ, sum2 ์—ด์˜ ํ•ฉ
    for (int i = 0; i < n; i++) {
        sum1 = sum2 = 0;
        for (int j = 0; j < n; j++) {
            sum1 += arr[i][j];
            sum2 += arr[j][i];
        }
        answer = Math.max(answer, sum1);
        answer = Math.max(answer, sum2);
    }
    sum1 = sum2 = 0;
    for (int i = 0; i < n; i++) {
        sum1 += arr[i][i];
        sum2 += arr[i][n - i - 1];
    }

    answer = Math.max(answer, sum1);
    answer = Math.max(answer, sum2);

    return answer;
}

๐Ÿ‘พ : ๊ฐ•์‚ฌ๋‹˜์€ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ? ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. sum1, sum2 ๋ณ€์ˆ˜ ๋‘๊ฐœ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ํ–‰์˜ ํ•ฉ, ์—ด์˜ ํ•ฉ / ๋Œ€๊ฐ์„ ์˜ ํ•ฉ์„ ๋”ฐ๋กœ ๊ตฌํ–ˆ๋‹ค. 

(๊ตฌํ•˜๋Š” ๋ฐฉ์‹์€ ๋™์ผํ•˜๋‹ค.) ๋Œ€์‹  Math.max๋ฅผ ์ด์šฉํ•ด์„œ answer์— ํฐ ๊ฐ’์„ ๊ณ„์† ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€. ๋งˆ์ง€๋ง‰์— return ํ•ด์คฌ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‚˜์ฒ˜๋Ÿผ ๊ตณ์ด arraylist์— ๊ฐ’์„ ๋‹ด๊ณ  max๋ฅผ ๊ตฌํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค..!

 

 

 

 

728x90