Teddy Bear Holding A Heart Balloon [์ž…๋ฌธ] ์ง„๋ฃŒ์ˆœ์„œ ์ •ํ•˜๊ธฐ
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿฅ‡ Coding Test/์˜ค๋‹ต๋…ธํŠธ

[์ž…๋ฌธ] ์ง„๋ฃŒ์ˆœ์„œ ์ •ํ•˜๊ธฐ

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

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

[ ๋ฌธ์ œ์„ค๋ช… ]

์™ธ๊ณผ์˜์‚ฌ ๋จธ์“ฑ์ด๋Š” ์‘๊ธ‰์‹ค์— ์˜จ ํ™˜์ž์˜ ์‘๊ธ‰๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ง„๋ฃŒ ์ˆœ์„œ๋ฅผ ์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜ ๋ฐฐ์—ด emergency๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์‘๊ธ‰๋„๊ฐ€ ๋†’์€ ์ˆœ์„œ๋Œ€๋กœ ์ง„๋ฃŒ ์ˆœ์„œ๋ฅผ ์ •ํ•œ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

[ ํ’€์ด ]

class Solution {
    public int[] solution(int[] emergency) {
        int len = emergency.length; //emergency๋ฐฐ์—ด์˜ ๊ธธ์ด ์„ ์–ธ
        int[] answer = new int [len]; //์ •๋‹ต๋ฐฐ์—ด ์„ ์–ธ
        
        //์ด์ค‘for๋ฌธ์œผ๋กœ emergency๋ฐฐ์—ด ์ˆœํšŒ
        for (int i=0; i<len; i++) { 
            for (int j=0; j<len; j++) {
                if (emergency[i] < emergency[j]) {
                //์ž์‹ ๋ณด๋‹ค ํฐ ์›์†Œ๊ฐ€ ์žˆ์„๋•Œ๋งˆ๋‹ค
                    answer[i]++; //์ •๋‹ต๋ฐฐ์—ด +1 ์ฆ๊ฐ€
                }
            }
            answer[i]++; 
            //์ •๋‹ต๋ฐฐ์—ด์€ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜์–ด์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋“  ์›์†Œ +1 ๋”ํ•ด์คŒ
        }
        return answer;
    }
}
import java.util.*;

class Solution {
    public int[] solution(int[] emergency) {
        int len = emergency.length;
        int[] answer = new int[len];
        
        Map<Integer, Integer> map = new HashMap<>();
        //map์„ ์–ธ

        for (int i = 0; i < len; i++) {
            map.put(emergency[i], i);
            //key:์‘๊ธ‰๋„
            //value:์ธ๋ฑ์Šค
        }

        Arrays.sort(emergency);
        //์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        //3 24 76

        int rank = emergency.length; 
        //์ง„๋ฃŒ์ˆœ์„œ๋ฅผ ๋งค๊ฒจ์ค„ ๋ณ€์ˆ˜ rank์„ ์–ธ
        //emergency์ˆซ์ž๊ฐ€ ์ž‘์„์ˆ˜๋ก rank๊ฐ€ ํฌ๋‹ค!
        //์ฒ˜์Œ rank๋Š” ๋๋“ฑ์ˆ˜๋ถ€ํ„ฐ ์‹œ์ž‘ (์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ)
        
        for (int i=0; i<len; i++) { //emergency๋ฐฐ์—ด ์ˆœํšŒํ•˜๋ฉด์„œ(์‘๊ธ‰๋„ ๋‚ฎ์€๊ฒƒ๋ถ€ํ„ฐ)
            answer[map.get(emergency[i])] = rank;
            //map์œผ๋กœ value(์ธ๋ฑ์Šค) ๊ฐ€์ ธ์˜จ ํ›„, ํ•ด๋‹น ์ธ๋ฑ์Šค์— rankํ• ๋‹น
            rank--;
            //rank -1ํ•ด์ฃผ๊ธฐ
        }

        return answer;
    }
}