๊ธฐ๋ก๋ฐฉ

Lv.2 : ๋กค์ผ€์ดํฌ ์ž๋ฅด๊ธฐ ๋ณธ๋ฌธ

CodingTest/Java

Lv.2 : ๋กค์ผ€์ดํฌ ์ž๋ฅด๊ธฐ

Soom_1n 2023. 11. 23. 17:39

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

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

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

programmers.co.kr



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ๋ฐฐ์—ด์— ํŠน์ • ๋ถ€๋ถ„์„ ์ž˜๋ผ ๋‚˜์˜ค๋Š” ๋‘ ์ง‘ํ•ฉ์˜ ์›์†Œ ์ข…๋ฅ˜ ์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ ๋ฌธ์ œ ํ’€์ด ๐Ÿ”ธ

  • ์ˆœ์„œ๋Œ€๋กœ ํ•œ ์ธ๋ฑ์Šค์”ฉ ์ž˜๋ผ๋ณด๋ฉฐ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ํ† ํ•‘์„ ์ธ๋ฑ์Šค๋กœ ๊ตฌ๋ถ„ํ•ด ์นด์šดํŠธํ•˜๊ณ , 1์ด์ƒ์ธ ์›์†Œ๋“ค์˜ ์ˆ˜๋ฅผ ์นด์šดํŠธ๋กœ ๋”ฐ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ๋‘ ์ง‘ํ•ฉ์˜ ์›์†Œ ์นด์šดํŠธ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

class Solution {
    public int solution(int[] topping) {
        // Input
        int[] t1 = new int[10_001];
        int[] t2 = new int[10_001];
        int cnt1 = 0;
        int cnt2 = 0;

        for (int t : topping) {
            if (++t2[t] == 1)
                cnt2++;
        }

        // Check
        int answer = 0;

        for (int i = 0; i < topping.length-1; i++) {
            int idx = topping[i];
            if (++t1[idx] == 1) cnt1++;

            if(--t2[idx] == 0) cnt2--;

            if (cnt1 == cnt2) answer++;
        }

        // Output
        return answer;
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ๊ฐ ์ง‘ํ•ฉ์˜ ์›์†Œ ๊ฐœ์ˆ˜๋ฅผ int๋ฐฐ์—ด t1, t2์— ์นด์šดํŠธํ•˜๊ณ , ์›์†Œ์˜ ์ข…๋ฅ˜ ์ˆ˜๋ฅผ cnt1, cnt2๋กœ ์นด์šดํŠธํ•œ๋‹ค.
  • t1, t2์˜ ํ•œ ์ธ๋ฑ์Šค์˜ ๊ฐ’์ด 1, 0์ด ๋ ๋•Œ ์นด์šดํŠธ๋ฅผ ๋ณ€ํ™”ํ•œ๋‹ค.
  • ๋‘ ์นด์šดํŠธ cnt1, cnt2์˜ ๊ฐ’์ด ๊ฐ™์„๋•Œ์˜ ์ˆ˜๋ฅผ answer์— ์นด์šดํŠธ ํ›„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์›์†Œ ์ˆ˜๋ฅผ ์นด์šดํŠธํ•˜๊ณ , ์ข…๋ฅ˜๋ฅผ ๋”ฐ๋กœ ์นด์šดํŠธํ•˜๋Š” ์•„์ด๋””์–ด๋งŒ ์žˆ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.
    • ์›์†Œ์˜ ์ˆ˜ ์นด์šดํŠธ๋ฅผ Map์œผ๋กœ ํ•ด์„œ ์ข…๋ฅ˜ ์นด์šดํŠธ๋ฅผ ํŽธํ•˜๊ฒŒ ํ•  ๊นŒ ํ–ˆ์ง€๋งŒ, ์›์†Œ ์ข…๋ฅ˜๊ฐ€ ์ž์ฃผ ์ƒ๊ธฐ๊ณ  ์ง€์›Œ์ง€๋ฉด ์—ฐ์‚ฐ์ด ์˜คํžˆ๋ ค ๋Š๋ ค์งˆ ๊ฒƒ ๊ฐ™์•„์„œ ์ „์ฒด ํ† ํ•‘ ๋ฒ”์œ„ ๋งŒํผ ๋ฐฐ์—ด ํฌ๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ–ˆ๋‹ค.

728x90