MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

๐Ÿƒ‍โ™€๏ธprogrammers/Java

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - java ์ „๊ตญ ๋Œ€ํšŒ ์„ ๋ฐœ ๊ณ ์‚ฌ

HYEJU01 2024. 5. 9. 17:41

๐Ÿ’ก  0 ~ n-1 ๋ฒˆ  -> n  ์ค‘ 3๋ช… ํ•™์ƒ ์„ ๋ฐœ 
์ฐธ์—ฌ ๊ฐ€๋Šฅ ํ•œ! ํ•™์ƒ ์ค‘ ๋“ฑ์ˆ˜๊ฐ€ ๋†’์€ 3๋ช…
๋“ฑ์ˆ˜ ๋†’์€ 3๋ช… a,b,c  10000xa + 100x b + 100x c

1) ์ •๋ ฌํ•ด์„œ ๋งค์นญํ•˜๊ธฐ =>  rank - attendance ์ธ๋ฑ์Šค ๊ฐ’ ๋งˆ๋‹ค ๋งค์น˜๋˜๊ธฐ๋•Œ๋ฌธ์— rank ๋งŒ ์ •๋ ฌํ•ด์ฃผ๋ฉด ์•ˆ๋จ

2) 2์ฐจ์› ๋ฐฐ์—ด์„ ํ†ตํ•ด์„œ ํ’€์–ด๋ณผ๊นŒ?? ์‹ถ์—ˆ๋Š”๋ฐ ์‹คํŒจํ–ˆ๊ณ ....ใ… ใ… 

โญhashMap ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค!!

 

์ฝ”๋“œ ๋ฆฌ๋ทฐ !!

 

1. ํ•ด์‰ฌ๋งต์— rank ๊ฐ’ / ์ธ๋ฑ์Šค ๊ฐ’ (๋“ฑ์ˆ˜) ๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.

2. map ์„ list๋กœ ๋งŒ๋“ค์–ด์„œ map์˜ ํ‚ค๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

3. ํ‚ค ๊ฐ’๋งŒ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ์‹œํ‚จ๋‹ค.

4. ํ‚ค ๊ฐ’๋“ค ์ค‘ 012 (3๋“ฑ๊นŒ์ง€) ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ  ์—ฐ์‚ฐํ•ด์ฃผ๋ฉด ๋

 

 

 ๐Ÿ’ฌ HashMap :: ํ‚ค(Key)์™€ ๊ฐ’(Value)์˜ ์Œ์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ํด๋ž˜์Šค

 ๐Ÿ’ฌ  put(key, value): ์ง€์ •๋œ ํ‚ค์™€ ๊ฐ’์˜ ์Œ์„ ๋งต์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ํ•ด๋‹น ํ‚ค์˜ ๊ฐ’์ด ์ด๋ฏธ ์กด์žฌํ•œ๋‹ค๋ฉด ์ƒˆ ๊ฐ’์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

 ๐Ÿ’ฌ  map.keySet() : ๋งต(map)์˜ ํ‚ค(key) ์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
 ๐Ÿ’ฌ  new ArrayList<>(map.keySet()) : ์ด ํ‚ค(key) ์ง‘ํ•ฉ์„ ArrayList์— ๋ณต์‚ฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
 ๐Ÿ’ฌ  Collections.sort(keySet) :  ArrayList์— ์ €์žฅ๋œ ์š”์†Œ๋“ค์„ ์ •๋ ฌ

 

 

import java.util.*;
class Solution {
    public int solution(int[] rank, boolean[] attendance) {
        int ans = 0, cnt = 0, r = 1;
        int[] abc = new int[3];
        HashMap<Integer,Integer> m = new HashMap<>();
        for(int i=0 ; i<rank.length ; i++)
            m.put(rank[i],i);
            
        while(cnt<3){ // 3๋“ฑ๊นŒ์ง€ ์ถ”์ถœํ•˜๋ฉด stop
            if(attendance[m.get(r)]) //r์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด true์ด๋ฉด
                abc[cnt++] = m.get(r); // ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— r ๋“ฑ์ˆ˜ ์ถœ๋ ฅ
            r++; // ํ‚ค๊ฐ’ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ cnt 3 ๋ ๋•Œ๊นŒ์ง€ ๊ฐ’ ์ฐพ๊ธฐ
        }
        return abc[0]*10000 + abc[1]*100 + abc[2];
    }
}

 

import java.util.*;

class Solution {
    public int solution(int[] rank, boolean[] attendance) {

        Map<Integer, Integer> map = new HashMap<>();

        for (int i = 0;  i < rank.length; i++){          
                if (attendance[i]){
                    map.put(rank[i],i); //rank๊ฐ’๊ณผ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ (๋“ฑ์ˆ˜)
            }
         }
        
        List<Integer> keySet = new ArrayList<>(map.keySet());
        Collections.sort(keySet);
        int a = map.get(keySet.get(0));
        int b = map.get(keySet.get(1));
        int c = map.get(keySet.get(2));

        return 10000*a+100*b+c;
    }
}