[프로그래머스|JAVA] 폰켓몬 | Set 사용 ⭕️ , contains()

2025. 8. 14. 21:55·💻코딩/💡Programmers
728x90
반응형

[문제 링크]

 

프로그래머스

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

programmers.co.kr

당신은 최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에, 최대한 많은 종류의 폰켓몬을 포함해서 N/2마리를 선택하려 합니다. N마리 폰켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때, N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성해주세요.

 


 

📍 코드

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        int n = nums.length / 2;
        HashSet<Integer> set = new HashSet<Integer>();
        
        for(int i = 0; i < nums.length; i++){
            if(!set.contains(nums[i])) set.add(nums[i]);
        }
    
        return set.size() > n ? n : set.size();
    }
}

💡접근법

  • set은 중복으로 담을 수 없다.
  • contains를 통해 포함되어 있는지 확인할 수 있다.
  • 한 종류에 한 마리씩만 카운트한 수 (set.size())와 선택할 수 있는 수 (n) 중 작은 사이즈를 반환하면 된다.
    • 문제 이해가 어렵지만, 결론적으로 한 종류에 한 마리씩 카운트한 수와 같다.
      • 최대 n/2 마리 선택할 수 있는데 그보다 종류가 적다면, 한 종류씩 카운트한 수를 반환하고,
      • 그게 아니라면 최대 선택할 수 있는 n/2 마리를 반환한다는 말이다.

 


 

가끔 코테 연습을 하다보면

문제 풀이보다 문제 이해가 더 중요하고, 애먹는 걸 느낀다...

국어 공부가 필요한 건가 하는 생각도 든다 😂

이럴 때 [질문하기]는 정말 좋은 기능인 것 같다.

 

 

728x90
반응형

'💻코딩 > 💡Programmers' 카테고리의 다른 글

[프로그래머스|JAVA] 의상 | 2️⃣번째 풀이 | Map 활용하여 간결 & 가독성 좋게 💡 , 향상된 for문, getOrDefault()  (4) 2025.08.14
[프로그래머스|JAVA] 완주하지 못한 선수 | Map 사용 ⭕️ , getOrDefault(), 향상된 for문 연습 중💬, iterator() 활용  (2) 2025.08.14
[프로그래머스|JAVA] 가장 큰 수 찾기 | Level 0  (0) 2025.08.14
[프로그래머스|JAVA] 자연수 뒤집어 배열로 만들기 | Stream 방식  (1) 2025.08.14
[프로그래머스|JAVA] 전화번호 목록 | startsWith(), sort 사용 ⭕️ | HashSet 사용 ❌  (3) 2025.07.31
'💻코딩/💡Programmers' 카테고리의 다른 글
  • [프로그래머스|JAVA] 의상 | 2️⃣번째 풀이 | Map 활용하여 간결 & 가독성 좋게 💡 , 향상된 for문, getOrDefault()
  • [프로그래머스|JAVA] 완주하지 못한 선수 | Map 사용 ⭕️ , getOrDefault(), 향상된 for문 연습 중💬, iterator() 활용
  • [프로그래머스|JAVA] 가장 큰 수 찾기 | Level 0
  • [프로그래머스|JAVA] 자연수 뒤집어 배열로 만들기 | Stream 방식
망꼬누나
망꼬누나
공부한 내용을 정리하는 공간입니다.
  • 망꼬누나
    망꼬누나의 개발 공부
    망꼬누나
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • ℹ️ 정보 및 실습 (19)
        • ☑️ Git & GitHub (8)
        • ☑️ 프로젝트 (6)
        • ☑️ 회고 및 후기 (5)
      • 🛠 CS (1)
      • 💻코딩 (88)
        • 💡Baekjoon (17)
        • 💡Programmers (71)
      • ✏️공부 (48)
        • 💡OS (1)
        • 💡Network (6)
        • 💡SpringBoot (9)
        • 💡JAVA (21)
        • 💡SQL (1)
        • 💡DB (2)
        • ☁️ Cloud (4)
        • 💡알고리즘 (4)
      • 📌 자격증 (6)
        • 📝정보처리기사 (3)
        • 📝SQLD (3)
  • 블로그 메뉴

    • 홈
    • github
  • 나의 GitHub Contribution 그래프
    Loading data ...
  • 인기 글

  • 태그

    알고리즘
    백엔드
    Java
    github
    S3
    baekjoon
    코딩테스트
    동시성제어
    네트워크
    자바
    Set
    프로그래머스
    자료구조
    map
    트랜잭션
    프로그래머스 #JAVA
    데브코스
    AWS
    GIT
    Stream
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.5
망꼬누나
[프로그래머스|JAVA] 폰켓몬 | Set 사용 ⭕️ , contains()
상단으로

티스토리툴바