09009

[프로그래머스 lv1] 대충 만든 자판 본문

Algorithm/딕셔너리
[프로그래머스 lv1] 대충 만든 자판
09009

문제 보기

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

소스 코드

import java.util.*;
class Solution {
    public int[] solution(String[] keymap, String[] targets) {
        int[] answer = new int[targets.length];
        
        Map<Character, Integer> map = new HashMap<>();
        for (int i=0; i<keymap.length; i++) {
            for (int j=0; j<keymap[i].length(); j++) {
                char c = keymap[i].charAt(j);
                if (!map.containsKey(c)) {
                    map.put(c, j+1);
                } else {
                    map.put(c, Math.min(map.get(c), j+1));
                }
            }
        }
   
        for (int i=0; i<targets.length; i++) {
            int count = 0;
            for (int j=0; j<targets[i].length(); j++) {
                char c = targets[i].charAt(j);
                if (map.containsKey(c)) {
                    count += map.get(c);
                } else {
                    count = -1;
                    break;
                }       
            }
            answer[i] = count;
        }
 
        return answer;
    }
}