๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers lv-0

๋“ฑ์ˆ˜ ๋งค๊ธฐ๊ธฐ - Java [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ]

by ๊ทคํ”ผํ‚ค 2022. 11. 28.

 

โค๏ธProblem

๋”๋ณด๊ธฐ
  • ๋ฌธ์ œ
    ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜์˜ ํ‰๊ท  ์ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•™์ƒ๋“ค์˜ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ธฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜๋ฅผ ๋‹ด์€ 2์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด score๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜์˜ ํ‰๊ท ์„ ๊ธฐ์ค€์œผ๋กœ ๋งค๊ธด ๋“ฑ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

  • ์ œํ•œ ์‚ฌํ•ญ
    • 0 ≤ score[0], score[1] ≤ 100
    • 1 ≤ score์˜ ๊ธธ์ด ≤ 10
    • score์˜ ์›์†Œ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค.
    • score๋Š” ์ค‘๋ณต๋œ ์›์†Œ๋ฅผ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…
no score result
1 [[80, 70], [90, 50], [40, 70], [50, 80]] [1, 2, 4, 3]
2 [[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]] [4, 4, 6, 2, 2, 1, 7]
  1. ํ‰๊ท ์€ ๊ฐ๊ฐ 75, 70, 55, 65 ์ด๋ฏ€๋กœ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ฒจ [1, 2, 4, 3]์„ returnํ•ฉ๋‹ˆ๋‹ค.
  2. ํ‰๊ท ์€ ๊ฐ๊ฐ 75, 75, 40, 95, 95, 100, 20 ์ด๋ฏ€๋กœ [4, 4, 6, 2, 2, 1, 7] ์„ returnํ•ฉ๋‹ˆ๋‹ค.
    ๊ณต๋™ 2๋“ฑ์ด ๋‘ ๋ช…, ๊ณต๋™ 4๋“ฑ์ด 2๋ช… ์ด๋ฏ€๋กœ 3๋“ฑ๊ณผ 5๋“ฑ์€ ์—†์Šต๋‹ˆ๋‹ค.

 


 

๐Ÿ’› Solution

ํ’€์ด

class Solution {
    public int[] solution(int[][] score) {
        int students = score.length;
        int[] rank = new int[students];

        for(int i=0; i<rank.length; i++) {
            rank[i] = 1;
        }

        for (int i=0; i<students; i++) {
            for (int j=0; j<students; j++) {
                if(score[i][0]+score[i][1] < score[j][0]+score[j][1]) {
                    rank[i]++;
                }
            }
        }
        return rank;
    }
}

 

์ฒ˜๋ฆฌ์†๋„ Very Good

 


 

๐Ÿ’œ Comment

๋ฌธ์ œ์—์„œ๋Š” ์ ์ˆ˜ ํ‰๊ท ์„ ๊ตฌํ•˜๋ผ๊ณ  ํ–ˆ์ง€๋งŒ ์–ด์ฐจํ”ผ ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜๋ฅผ ํ•ฉ์‚ฐํ•œ ์ด์ ์œผ๋กœ๋„ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ธธ ์ˆ˜ ์žˆ์—ˆ๊ธฐ์— ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ๋žตํ•˜์˜€๋‹ค.

์ฒ˜์Œ์— rank ๋ฐฐ์—ด์— ๊ฐ’ 1์„ ๋„ฃ์ง€ ์•Š๊ณ  ๊ตฌํ˜„ํ–ˆ๋”๋‹ˆ ์ „์ฒด ๋“ฑ์ˆ˜๊ฐ€ 0์œ„๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐฐ์—ด์— ๊ฐ’ 1์„ ๋„ฃ๊ณ  ์‹œ์ž‘ํ•˜๋Š” for๋ฌธ์„ ๊ตฌ์„ฑํ–ˆ๋‹ค.

ํ†ต๊ณผ๋ฅผ ํ•œ ๋’ค์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ˆ "Arrays.fill()"์ด๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒŒ ์•„๋‹Œ๊ฐ€?

import java.util.Arrays;

class Solution {
    public int[] solution(int[][] score) {
        int students = score.length;
        int[] rank = new int[students];

        Arrays.fill(rank, 1);

        for (int i=0; i<students; i++) {
            for (int j=0; j<students; j++) {
                if(score[i][0]+score[i][1] < score[j][0]+score[j][1]) {
                    rank[i]++;
                }
            }
        }
        return rank;
    }
}

 

์ฒ˜๋ฆฌ์†๋„์—๋Š” ์œ ์˜๋ฏธํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์ง€๋Š” ์•Š์•˜์ง€๋งŒ, ์—ญ์‹œ ์‚ฌ๋žŒ์€ ์•„๋Š” ๋งŒํผ ํ™œ์šฉํ•˜๊ณ  ์‚ฐ๋‹ค๋Š” ๋ง์ด ๋”ฑ์ด๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค.
๋ชจ๋ฅด๋ฉด ์†๋ฐœ์ด ๊ณ ์ƒํ•œ๋‹ค๋”๋‹ˆ.. ๋ฏธ์•ˆํ•˜๋‹ค ๋‚ด ์†์•„๐Ÿ˜…

์ด์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ score[i][0]+score[i][1]์™€ score[j][0]+score[j][1]๋ฅผ ๋น„๊ตํ–ˆ๋‹ค. score[i][0]+score[i][1]์˜ ์ด์ ์ด ๋” ๋‚ฎ์€ ๊ฒฝ์šฐ, ํ•ด๋‹น ์ธ๋ฑ์Šค๊ฐ’์„ ๊ฐ€์ง€๋Š” rank[i]์˜ ๊ฐ’์„ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค. (์ˆซ์ž๊ฐ€ ํด ์ˆ˜๋ก ๋“ฑ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•ด์•ผํ•˜๋ฏ€๋กœ)

 

5์ ์ด๋‹ค์•„์•„์•… ํ˜„์žฌ ์ˆœ์œ„ 14228์œ„! ๊ธฐ๋ถ„ ์ข‹๋‹ค๐Ÿ˜Š

 

 

 

๋Œ“๊ธ€