문제: 의상
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
HashMap<String, Integer> h1 = new HashMap<>();
for(int i = 0; i < clothes.length; i++){
String key = clothes[i][1];
if(h1.containsKey(key)){
h1.replace(key, h1.get(key)+1);
}else{
h1.put(key, 1);
}
}
int sum = 1;
for (Map.Entry<String, Integer> entry : h1.entrySet()) {
sum = sum * (entry.getValue()+1);
}
return sum-1;
}
}
HashMap이란?
키(Key)와 밸류(Value)가 짝을 이루어 데이터를 저장한다. 데이터의 저장위치를 해시함수를 통해 바로 알 수 있기 때문에 데이터의 추가, 삭제, 특히 검색이 빠르다는 장점이 있다.
생성방법
HashMap<String, String> h1 = new HashMap<String, String>( );데이터 추가
put(K key, V value)데이터 확인
boolean containsKey(Object key)boolean containsValue(Object value)boolean isEmpty( )int size( )데이터 반환
get(Object key)HashMap 반복
entrySet() 사용하기 Set<Entry<Integer, String>> entrySet = map.entrySet();
for (Entry<Integer, String> entry : map.entrySet()) {
System.out.println("key : " + entry.getKey() + " / value:" + entry.getValue());
}
Iterator 사용하기 Iterator<Entry<Integer, String>> it = map.entrySet().iterator();
while(it.hasNext()) {
Entry<Integer, String> entry = it.next();
System.out.print("key-value : "+entry+" / ");
System.out.println("key : "+entry.getKey()+" / value : "+entry.getValue());
}