์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜4. HashMap, TreeSet (ํ•ด์‰ฌ, ์ •๋ ฌ์ง€์› Set) : ํ•™๊ธ‰ ํšŒ์žฅ

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

728x90

 

https://hyejin.tistory.com/1226

 

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜3. Two Pointers, Sliding Window [ํšจ์œจ์„ฑ : O(n^2) --> O(n)] : ์ตœ๋Œ€ ๊ธธ์ด

https://hyejin.tistory.com/1225 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜3. Two Pointers, Sliding Window [ํšจ์œจ์„ฑ : O(n^2) --> O(n)] : ์—ฐ์†๋œ ์ž์—ฐ https://hyejin.tistory.com/1224 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜3. Two Pointers

hyejin.tistory.com

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

 

 

1. ํ•™๊ธ‰ ํšŒ์žฅ 

์„ค๋ช…

ํ•™๊ธ‰ ํšŒ์žฅ์„ ๋ฝ‘๋Š”๋ฐ ํ›„๋ณด๋กœ ๊ธฐํ˜ธ A, B, C, D, E ํ›„๋ณด๊ฐ€ ๋“ฑ๋ก์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํˆฌํ‘œ์šฉ์ง€์—๋Š” ๋ฐ˜ ํ•™์ƒ๋“ค์ด ์ž๊ธฐ๊ฐ€ ์„ ํƒํ•œ ํ›„๋ณด์˜ ๊ธฐํ˜ธ(์•ŒํŒŒ๋ฒณ)๊ฐ€ ์“ฐ์—ฌ์ ธ ์žˆ์œผ๋ฉฐ ์„ ์ƒ๋‹˜์€ ๊ทธ ๊ธฐํ˜ธ๋ฅผ ๋ฐœํ‘œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์„ ์ƒ๋‹˜์˜ ๋ฐœํ‘œ๊ฐ€ ๋๋‚œ ํ›„ ์–ด๋–ค ๊ธฐํ˜ธ์˜ ํ›„๋ณด๊ฐ€ ํ•™๊ธ‰ ํšŒ์žฅ์ด ๋˜์—ˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

๋ฐ˜๋“œ์‹œ ํ•œ ๋ช…์˜ ํ•™๊ธ‰ํšŒ์žฅ์ด ์„ ์ถœ๋˜๋„๋ก ํˆฌํ‘œ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

 

์ž…๋ ฅ

์ฒซ ์ค„์—๋Š” ๋ฐ˜ ํ•™์ƒ์ˆ˜ N(5<=N<=50)์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ค„์— N๊ฐœ์˜ ํˆฌํ‘œ์šฉ์ง€์— ์“ฐ์—ฌ์ ธ ์žˆ๋˜ ๊ฐ ํ›„๋ณด์˜ ๊ธฐํ˜ธ๊ฐ€ ์„ ์ƒ๋‹˜์ด ๋ฐœํ‘œํ•œ ์ˆœ์„œ๋Œ€๋กœ ๋ฌธ์ž์—ด๋กœ ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 

์ถœ๋ ฅ

ํ•™๊ธ‰ ํšŒ์žฅ์œผ๋กœ ์„ ํƒ๋œ ๊ธฐํ˜ธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

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

15
BACBACCACCBDEDE

 

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

C

 

 

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

public String solution(int n, String result) {
    String answer = "";
    Map<String, Integer> map = new HashMap<>();
    String[] split = result.split("");
    for (String s : split) {
        Integer sum = map.getOrDefault(s, 1);
        map.put(s, sum + 1);
    }

    int max = Integer.MIN_VALUE;
    for (String s : map.keySet()) {
        Integer score = map.get(s);
        if (max < score) {
            answer = s;
            max = score;
        }
    }

    return answer;
}

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป : ์šฐ์„  ์ด๋ฒˆ ์„น์…˜๋ถ€ํ„ฐ๋Š” HashMap, TreeSet ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ œ ํ‘ธ๋Š” ๋ถ€๋ถ„์ด๋‹ค. 

๋จผ์ € ๋ฌธ์ œ์—์„œ ํ›„๋ณด๋Š” A, B, C, D, E 5๋ช…์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ A, B, C, D, E ๊ฐ€ HashMap์˜ key ๊ฐ€ ๋œ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด result ์—์„œ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ splitํ•˜๊ณ , ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์„œ map์— ํ•ด๋‹น ํ‚ค์— score ์„ ๋”ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ 

map์˜ ๋งจ ์ฒ˜์Œ์—๋Š” ์•„๋ฌด ๊ฐ’๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์— getOrDefault ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ key ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๊ทธ ๊ฐ’์„ ๊ตฌํ•ด์„œ +1 ํ•ด์ฃผ๊ณ , ์—†๋‹ค๋ฉด 0 ์„ ๋ฐ˜ํ™˜ํ•œ ๋‹ค์Œ + 1 ์„ ํ•ด์ค€๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํ‚ค ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ํˆฌํ‘œ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋‘ ์ €์žฅํ•œ ๋‹ค์Œ์— 

map.keySet ๋ฉ”์„œ๋“œ๋ฅผ  ํ†ตํ•ด์„œ ํ‚ค ๊ฐ’์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค map์—์„œ ์ด ํ‚ค๊ฐ’์„ get ํ•œ ๊ฐ’์ด max ๊ฐ’๋ณด๋‹ค ํฌ๋ฉด answer ์— ํ•ด๋‹น ํ‚ค ๊ฐ’์„ ์ €์žฅํ•ด์ฃผ๊ณ , max ๊ฐ’์€ ํ•ด๋‹น ํ‚ค ๊ฐ’์œผ๋กœ ๋Œ€์ž…ํ•ด์ค€๋‹ค. 

 

 


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

public char solution2(int n, String s) {
    char answer = ' ';
    HashMap<Character, Integer> map = new HashMap<>();
    for (char x : s.toCharArray()) {
        map.put(x, map.getOrDefault(x, 0) + 1);
    }

    int max = Integer.MIN_VALUE;
    for (char key : map.keySet()) {
        if (map.get(key) > max) {
            max = map.get(key);
            answer = key;
        }
    }

    return answer;
}

๐Ÿ‘พ : ๊ฐ•์‚ฌ๋‹˜์ด ํ‘ผ ๋ฐฉ์‹์€ ๋‚˜์™€ ๋™์ผํ•œ๋ฐ ์ฐจ์ด์ ์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ๋ฌธ์ž์—ด์„ split์ด ์•„๋‹Œ Character ํ˜•์‹์œผ๋กœ ๋ฐ”๊ฟจ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'์ธํ”„๋Ÿฐ > ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ž…๋ฌธ : ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜4. HashMap, TreeSet (ํ•ด์‰ฌ, ์ •๋ ฌ์ง€์› Set) : ๋งค์ถœ์•ก์˜ ์ข…๋ฅ˜  (0) 2023.10.23
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜4. HashMap, TreeSet (ํ•ด์‰ฌ, ์ •๋ ฌ์ง€์› Set) : ์•„๋‚˜๊ทธ๋žจ  (1) 2023.10.22
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜3. Two Pointers, Sliding Window [ํšจ์œจ์„ฑ : O(n^2) --> O(n)] : ์ตœ๋Œ€ ๊ธธ์ด ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด  (0) 2023.10.20
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜3. Two Pointers, Sliding Window [ํšจ์œจ์„ฑ : O(n^2) --> O(n)] : ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ 2 (์ˆ˜ํ•™์ ์œผ๋กœ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•)  (1) 2023.10.20
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜3. Two Pointers, Sliding Window [ํšจ์œจ์„ฑ : O(n^2) --> O(n)] : ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ  (0) 2023.10.19