4 Jul 2020

2020카카오 인턴십 보석 쇼핑

2020카카오 인턴십 보석 쇼핑

import java.util.*;
class Solution {
    Queue<String> q=new LinkedList<>();
    HashSet<String> hs=new HashSet<>();
    HashMap<String,Integer> hm=new HashMap<>();
    int startPoint=0;
    int length=Integer.MAX_VALUE;
    public int[] solution(String[] gems) {
        int[] answer = {};
        int start=0;
        for(String gem:gems){
            hs.add(gem);
        }
        for(String gem:gems){
            q.add(gem);
            if(!hm.containsKey(gem)){
                hm.put(gem,1);
            }else{
                hm.put(gem,hm.get(gem)+1);
            }
            
            while(true){
                String temp=q.peek();
                if(hm.get(temp)>1){
                    hm.put(temp,hm.get(temp)-1);
                    q.poll();
                    startPoint++;
                }else{
                    break;
                }
            }
            
            
            if(hs.size()==hm.size()&&length>q.size()){
                length=q.size();
                start=startPoint;
            }
        }
        answer=new int[]{start+1,start+length};
        return answer;
    }
}

Tags:
0 comments