알고리즘 스터디 1주차

이은지·2023년 10월 10일
0

알고리즘 스터디 1주차 과제로 해시 자료구조를 공부하고, 해시와 관련된 문제 중 폰켓몬 문제 풀이를 진행하였다.

코딩테스트 연습 - 폰켓몬 | 프로그래머스 스쿨 (programmers.co.kr)

💡HashMap이란?

  • HashMap은 Map인터페이스를 구현한 대표적인 Map 컬렉션이다.
  • Map은 키(Key)와 값(Value)으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조로 키와 값은 모두 객체이다.
  • 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없다.

💡HashMap 생성자/메서드

생성자/메서드설명
HashMap()HashMap 객체를 생성 ex) HashMap<String , Integer> map = new HashMap<String , Integer>();
Object put(Object Key, Object Value)HashMap에 키와 값을 저장.ex) map.put("A", "aaa");
boolean containsKey(Object Key)HashMap에 지정된 키(Key)가 포함되어 있는지 알려줌
boolean containsValue(Object Value)HashMap에 지정된 값(Value)가 포함되어 있는지 알려줌
Object get(Object Key)지정된 Key 의 값을 반환
bloolean isEmptyHashMap이 비어있는지 확인
Set keySet()HashMap에 저장된 모든 키가 저장된 Set을 반환
int size()HashMap에 저장된 요소의 개수를 반환
Collection values()HashMap에 저장된 모든 값을 컬렉션 형태로 반환

💡나의 제출 코드

  1. HashMap을 이용해 포켓몬 종류의 개수를 구하였다
  2. 포켓몬 종류의 수와 배열의 절반 값과 비교해 그 중 최소값을 리턴하였다.
import java.util.HashMap;

class Solution {
    public int solution(int[] nums) {
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
        for(int i=0; i<nums.length; i++){
            if(!map.containsKey(nums[i])){
                map.put(nums[i], 1);
            }
        }
        
        if(map.size()<=nums.length/2){
            return map.size();
        }else{
            return nums.length/2;
        }
    }
}
profile
소통하는 개발자가 꿈입니다!

0개의 댓글