[프로그래머스] 대충 만든 자판 (JAVA)

유존돌돌이·2023년 3월 7일
0

Programmers

목록 보기
167/167
post-thumbnail

풀이

import java.util.HashMap;

class Solution {
    public int[] solution(String[] keymap, String[] targets) {
        HashMap<Character, Integer> hm = new HashMap<>();
        int[] ret = new int[targets.length];
        
        for(String key : keymap) {
            for(int i=0 ; i<key.length() ; i++) {
                char c = key.charAt(i);
                if(!hm.containsKey(c) || i<hm.get(c)) {
                    hm.put(c, i+1);
                }
            }
        }
        
        for(int i=0 ; i<targets.length ; i++) {
            int cnt = 0;
            for(int j=0 ; j<targets[i].length() ; j++) {
                char c = targets[i].charAt(j);
                if(!hm.containsKey(c)) {
                    cnt = 0;
                    break;
                } else {
                    cnt += hm.get(c);
                }
            }
            ret[i] = cnt==0?-1:cnt;
        }
        return ret;
    }
}

keymap을 사용하여 Character 별 최소값을 HashMap에 입력하며,
targets을 탐색하여 최소값을 찾는다. (키 값이 없을때는 -1 break)

URL

https://school.programmers.co.kr/learn/courses/30/lessons/160586

0개의 댓글