유일하게 번역기 안돌리고 그냥 풀리다니.. 반갑구나 반가워요~~

 

두 개의 String 배열을 인자로 받는데, 

첫번째 String 배열 안에 두번째 String 배열 내의 모든 요소들이 존재하면 Yes를 출력, 아니면 No를 출력하는 문제이다.

 

풀이 방법은

hashMap을 이용해서 일단 첫번째 String 배열 내의 모든 요소들을 key로 해서 집어 넣는다.

value는 1로 넣으면서, 중복 문자가 있다면 value의 숫자를 1씩 증가시키면서 넣어주었다.

 

그리고, 두번째 String 배열 내의 모든 요소들을 루프로 돌면서 map안에 key가 존재하는지, 존재하면 value를 1씩 차감시켰고, 존재하지 않거나 value가 0보다 작아지는 경우 No를 출력하도록 했다.

 

static void checkMagazine(String[] magazine, String[] note) {
    // 1. 잡지에 나오는 문자열에 note의 문자열이  모두 포함되어있으면 YES else No 출력
        
    HashMap<String, Integer> map = new HashMap<String, Integer>();

    for(int i=0; i<magazine.length; i++){
       if(!map.containsKey(magazine[i])){
           map.put(magazine[i], 1);
       }else{
           map.put(magazine[i], map.get(magazine[i])+1);
       }
    }

        
    for(int i=0; i<note.length; i++){
        if(!map.containsKey(note[i])){
            System.out.println("No");
            return;
        }else{
            if(map.get(note[i]) > 0){
                map.put(note[i], map.get(note[i])-1);
            }else{
                System.out.println("No");
                return;
            }
        }
    }
    System.out.println("Yes");
    return;
}

 

 

+ Recent posts