• Home

My Codegate

  • Home

프로그래머스 폰켓몬 자바 문제풀이

2023/12/21 Posted by Codegate Java No Comments
프로그래머스 폰켓몬 자바 문제풀이

문제 링크

문제 내용은 간단한데 설명을 불필요하게 길게 하다 보니 문제가 헷갈려지는데, 결국 내용은 숫자로 이루어진 배열을 받은 뒤 가장 많은 종류의 폰켓몬을 얻는 경우의 폰켓몬의 수를 구해야 하는데, 여기서 최대값은 배열 크기/2를 넘어갈 수 없다

import java.util.HashMap;
import java.util.Map;

class Solution {
  public static int solution(int[] nums) {
    HashMap<Integer, Integer> map = new HashMap<>();
    for (int num : nums) {
      map.merge(num, 1, Integer::sum);
    }

    int max = nums.length / 2;
    int answer = 0;
    for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
      answer++;
      if (answer >= max) {
        return answer;
      }
    }

    return answer;
  }
}

일단 최대값을 폰켓몬의 수 / 2로 지정해 놓은 뒤, 배열의 내용을 Map에 모두 넣어주면 폰켓몬 종류와 몇마리 들었는지를 확인할 수 있는데, 이후 Map의 내용을 entrySet을 이용해 꺼내주면서, 종류별로 answer에 +1씩 해주다가 만약 answer가 최대값 이상이 되면 바로 answer를 리턴시켜주면 되고, 그렇지 않을 경우에는 끝까지 돌려본 뒤 폰켓몬 종류를 반환해주면 되는데

지금 와서 보니 폰켓몬의 전체 수는 N/2 를 구하는 경우 외에는 필요가 없으니 HashSet을 사용해도 전혀 문제 푸는데 지장이 없다

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next