고득점 Kit - Hash (폰켓몬)

2023. 4. 10. 22:19·📚 Data Architect/Programmers

💡 문제 파악

포켓몬의 종류가 담긴 배열 nums가 있고 이 배열의 길이를 이용해 최댓값(nums / 2)을 구할 수 있다.


알고리즘 풀이 순서

  1. 최대값을 구하기 위해 주어진 배열 nums의 length를 2로 나눈 값을 max에 대입한다.
  2. 중복을 제거한 값을 구하기 위해 Set을 이용해서 nums에 있는 값들을 담아준다.
    → 이때, Set은 집합 기반이기에 중복을 알아서 제거하며, 빠른 탐색을 위해 HashSet을 이용하였다.
  3. 중복을 제거한 Set의 크기가 max보다 크면 max를, 작으면 Set 사이즈를 리턴한다.

풀이

import java.util.HashSet;

public class Solution {
    public int solution(int[] nums) {
        // 총 수에 2를 나눔
        int max = nums.length / 2;

        // 중복을 제거하는 Integer Set 생성
        HashSet<Integer> hashSet = new HashSet<>();

        // Set에 데이터를 넣음으로서 중복된 데이터를 제거 한다
        for (int n : nums) {
            hashSet.add(n);
        }

        // 중복을 제거한 Set의 크기가 max보다 크면 max, 작으면 set 사이즈 리턴
        if (max >= hashSet.size()) {
            return hashSet.size();
        } else {
            return max;
        }
    }
}

다른사람의 풀이

import java.util.Arrays;
import java.util.stream.Collectors;

class Solution {
    public int solution(int[] nums) {
        return Arrays.stream(nums)
            .boxed()
            .collect(Collectors.collectingAndThen(Collectors.toSet(),
               phonekemons -> Integer.min(phonekemons.size(), nums.length / 2)));
    }
}
저작자표시 (새창열림)

'📚 Data Architect > Programmers' 카테고리의 다른 글

고득점 Kit - Stack & Queue (같은 숫자는 싫어)  (0) 2023.04.10
고득점 Kit - Hash (베스트 앨범)  (0) 2023.04.10
고득점 Kit - Hash (위장)  (0) 2023.04.10
고득점 Kit - Hash (전화번호 목록)  (0) 2023.04.10
고득점 Kit - Hash (완주하지 못한 선수)  (0) 2023.04.10
'📚 Data Architect/Programmers' 카테고리의 다른 글
  • 고득점 Kit - Hash (베스트 앨범)
  • 고득점 Kit - Hash (위장)
  • 고득점 Kit - Hash (전화번호 목록)
  • 고득점 Kit - Hash (완주하지 못한 선수)
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      Lock #Thread #Concurrency
      React #Markdown
      GStreamer #Pipeline
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    고득점 Kit - Hash (폰켓몬)
    상단으로

    티스토리툴바