코딩테스트 4번 __hashMap __ rt,lt 응용

JoMinJun·2021년 8월 5일
0

코딩테스트

목록 보기
35/39

3번을 토대로 4번을 풀면 쉽게 풀린다

package main4;


import java.util.Map;
import java.util.Scanner;
import java.util.HashMap;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collections;



public class Main4 {

	public  int solution(String a,String b){

		
		int count = 0;
			
			HashMap<Character, Integer> map = new HashMap<>();
			HashMap<Character, Integer> map2 = new HashMap<>();
			
		
			
			for(int i  = 0; i < b.length(); i ++) {
				map.put(b.charAt(i), map.getOrDefault(b.charAt(i), 0) + 1);
			}			
			
			// a 1 b 1 c 1
			
			for(int i  = 0; i < b.length(); i ++) {
				map2.put(a.charAt(i), map2.getOrDefault(a.charAt(i), 0) + 1);
			}
			
			
			
			if(map.equals(map2)) {
				count ++;
			}

			
			int lt = 0;
			for(int rt = b.length(); rt < a.length(); rt ++) {
				map2.put(a.charAt(rt),map2.getOrDefault(a.charAt(rt), 0) + 1);
				
				map2.put(a.charAt(lt),map2.get(a.charAt(lt))-1);
				
				if(map2.get(a.charAt(lt)) == 0) {
					map2.remove(a.charAt(lt));
				}
				
				if(map.equals(map2)) {
					count ++;
				}
				
				lt++;
				
	
				
			}
			
			
			
		return count;
	};
	
	
	

	
	
	
	
	
	
	public static void main(String[] args) {
		
		
		Main4 main2 = new Main4();
		
		 Scanner kb = new Scanner (System.in);
		 String a = kb.next();
		 String b = kb.next();
		 
		 
	
		
	
		
	
		System.out.println(	main2.solution(a,b));
	    
		
	}
	

}

profile
기술정리

0개의 댓글