๊ธฐ๋ก๋ฐฉ

Lv.1 : ํฐ์ผ“๋ชฌ ๋ณธ๋ฌธ

CodingTest/Java

Lv.1 : ํฐ์ผ“๋ชฌ

Soom_1n 2022. 8. 16. 22:48

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

 

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

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

programmers.co.kr



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

  • intํ˜• ๋ฐฐ์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ์ข…๋ฅ˜๋ณ„ ๊ฐฏ์ˆ˜๋ฅผ ์„ผ๋‹ค.
  • ์ข…๋ฅ˜๊ฐ€ ์ž…๋ ฅ๋œ ๋ฐฐ์—ด์˜ 1/2 ํฌ๊ธฐ ๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ข…๋ฅ˜์˜ ์ˆ˜๋ฅผ, ์•„๋‹ˆ๋ฉด ๋ฐฐ์—ด์˜ 1/2 ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

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

import java.util.HashMap;
class Solution {
    public int solution(int[] nums) {

        HashMap<Integer, Integer> poket = new HashMap<Integer,Integer>();

        for (int i : nums){
            if(poket.containsKey(i)){
                poket.put(i,poket.get(i)+1);
            }
            else{
                poket.put(i,1);
            }
        }

        if(nums.length/2 > poket.size()){
            return poket.size();
        }
        else{
            return nums.length/2;
        }
    }
}

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

  • ์ค‘๋ณตํ•œ ์ˆซ์ž๋ณ„ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ๊ธฐ์œ„ํ•ด HashMap์„ ์‚ฌ์šฉํ–ˆ๋‹ค.
  • ์ฒซ ๋“ฑ์žฅํ•œ key๋Š” value๋ฅผ 1๋กœ ์ถ”๊ฐ€ํ•˜๊ณ , ์ด๋ฏธ ๋‚˜์™”๋˜ key๋Š” value๋ฅผ 1์ถ”๊ฐ€ํ•œ๋‹ค.
  • ์ž…๋ ฅ๋œ ๋ฐฐ์—ด์˜ 1/2ํฌ๊ธฐ๋ณด๋‹ค key์ข…๋ฅ˜๊ฐ€ ์ž‘์œผ๋ฉด ํ‚ค์ข…๋ฅ˜์˜ ์ˆ˜๋ฅผ, ํฌ๋ฉด ๋ฐฐ์—ด์˜ 1/2ํฌ๊ธฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
    • key์ข…๋ฅ˜๊ฐ€ ๋” ์ž‘์œผ๋ฉด : ๋ชจ๋“  ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜๋ฅผ ์„ ํƒ ๊ฐ€๋Šฅ
    • key์ข…๋ฅ˜๊ฐ€ ๋” ๋งŽ์œผ๋ฉด : ์ž…๋ ฅ ๋ฐฐ์—ด์˜ 1/2 ๋งŒํผ ์„ ํƒ ๊ฐ€๋Šฅ

๐Ÿ”ธ end ๐Ÿ”ธ

  • ํ’€๊ณ ๋ณด๋‹ˆ ์–ด๋ ต์ง€ ์•Š์€ ๋ฌธ์ œ์˜€์ง€๋งŒ, ๋ฌธ์ œ๋ฅผ ์ž˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ด์„œ ๋ฌด์ž‘์ • ํ•ด์‹œ๋ฅผ ์ ์šฉํ•˜๋ ค๋‹ค๋ณด๋‹ˆ ์–ด๋ ต๊ฒŒ ํ‘ผ ๊ฒƒ ๊ฐ™๋‹ค.
  • ์ด ๋ฌธ์ œ๋Š” HashMap์ด ์•„๋‹ˆ๋ผ HashSet๋งŒ ์‚ฌ์šฉํ•ด๋„ ํ’€์ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. (ArrayList๋„ ๊ฐ€๋Šฅํ•˜๋‹ค)

728x90