프로그래머스 대충만든 자판 문제를 풀었습니다.
문제를 확인한후 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;}}