[프로그래머스] 폰켓몬 (Java)

2026. 5. 29. 01:39·▪️알고리즘

문제

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

풀이

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        HashMap<Integer, Integer> mon = new HashMap<>();
        for(int i = 0; i< nums.length; i++){
            mon.put(nums[i], 1);
        }
        
        if(mon.size()<nums.length/2){
            return mon.size();
        }
        else {
            return nums.length/2;
        }
        return 0;
    }
}

- HashMap 사용했고 put할 때 value는 이용되지 않을 거니까 그냥 1 해줬다 

- 어쨌든 폰켓몬 종류 수와 nums/2 둘 중에 작은 거 리턴하는 거니까 굳이 if 저렇게 안 쓰고 삼항연산자 쓰는 것도 좋을 것 같은데 왜 코드 쓸 때는 죽어도 생각이 안 날까...

 

- HashSet 사용한 풀이도 있길래 HashMap이랑 차이점 찾아보니까
HashMap은 key와 value 저장, HashSet은 객체 그 자체만 저장한다고 한다

HashMap은 key-value 쌍으로 관리해서 key는 중복이 안 되고, value는 중복 가능하고 덮어쓸 수 있는 반면
HashSet은 value만 존재하고, 중복이 허용되지 않는다 그래서 중복을 제거할 때 용이하다고 한다 
근데 set도 map을 기반으로 하기 때문에 사실은 key값에 객체를 넣고 value에는 더미데이터를 넣어 사실은 key가 중복이 되지 않는 고유한 특성을 이용한 것이라고 하네... 

 

 

쓰다보니까 해시탈트 붕괴 와서 좀 더 공부를 해봐야겠다 문제 좀 꾸준히 풀게 채찍질하려고 다시 올리는 블로그... 

 

 

'▪️알고리즘' 카테고리의 다른 글

[프로그래머스] 인기 있는 아이스크림 - SQL 고득점 Kit  (0) 2026.07.07
'▪️알고리즘' 카테고리의 다른 글
  • [프로그래머스] 인기 있는 아이스크림 - SQL 고득점 Kit
cosmo225
cosmo225
개발자로 향하는 길 👽
  • cosmo225
    to cosmo!
    cosmo225
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • ▪️Spring Boot (11)
      • ▪️트러블슈팅 (7)
      • ▪️CS 스터디 (8)
      • ▪️알고리즘 (2)
      • ▪️프로그래밍 (2)
      • ▪️Git (3)
      • ▪️etc (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    깃허브
    GIT
    백엔드
    Programming
    공부
    springboot
    컴퓨터
    Spring
    개발
    프로그래밍
    TIL
    스프링부트
    CS
    Study
    java
    github
    스프링
    oauth2
    배포
    데이터베이스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
cosmo225
[프로그래머스] 폰켓몬 (Java)
상단으로

티스토리툴바