프로그래머스 대충만든 자판 [자력]

작성자 : 조회수 :

프로그래머스 대충만든 자판 문제를 풀었습니다.

문제를 확인한후 HASHMAP 자료형으로 문제를 풀었습니다.

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/160586?language=java

소요시간 1시간 30분


각각 A,B 등이 사전처럼 KEY 가지고 가장 작은 순서에 있는 애들을

(min number) 저장합니다.

 

한번 저장된 HASHMAP이니 매번 반복문을 돌릴 필요없이

꺼내서 사용하면 됩니다.


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Arrays;
class Solution {
public static int[] solution(String[] keymap, String[] targets) {
ArrayList<Integer> newAnswer = new ArrayList<>();
HashMap<Character, Integer> numberDoc = new HashMap<>();
for (String key : keymap){
for (int i = 0; i < key.length(); i++) {
Character newKey = key.charAt(i);
if(numberDoc.containsKey(newKey)){
if(numberDoc.get(newKey) > i){
numberDoc.put(newKey,i+1);
}
}else{
numberDoc.put(newKey,i+1);
}
}
}
for(String target : targets){
char[] tList = target.toCharArray();
int sum = 0;
for (char t : tList){
if(numberDoc.containsKey(t)){
sum += numberDoc.get(t);
}else{
sum = -1;
break;
}
}
newAnswer.add(sum);
}
int[] answer = new int[newAnswer.size()];
for (int i = 0; i < newAnswer.size(); i++) {
answer[i] = newAnswer.get(i);
}
return answer;
}
}