728x90

하나의 키에 할당된 문자들이 순서대로 담긴 문자열 배열 keymap과 

입력하려는 문자열이 담긴 배열 targets가 주어질때 

하나의 target을 입력하기 위해 키를 총 몇번을 눌러야하는지를 배열로 반환 

public int[] solution(String[] keymap, String[] targets) {

int[] answer = new int[targets.length];

Map<Character,Integer> map = new HashMap<Character, Integer>();

for (int i = 0; i < keymap.length; i++) {

for (int j = 0; j < keymap[i].length(); j++) {

if(map.getOrDefault(keymap[i].charAt(j), 0)==0||map.getOrDefault(keymap[i].charAt(j), 0)>j+1)

map.put(keymap[i].charAt(j), j+1);

}

}

for (int i = 0; i < targets.length; i++) {

int repeat = 0;

for (int j = 0; j < targets[i].length(); j++) {

int temp = map.getOrDefault(targets[i].charAt(j),-1);

if(temp!=-1)

repeat+=temp;

else {

repeat=-1;

break;

}

}

answer[i] = repeat;

 

}

return answer;

}

 map에 입력하려는 문자에 대한 키의 최소 입력횟수를 저장

만약 다른 키에서 동일한 문자의 최소 입력횟수가 더 적을 경우 적은 횟수를 저장 

 

'Java > Coding Test' 카테고리의 다른 글

실패율 문제 풀이  (0) 2023.10.01
문자열 나누기 문제 풀이  (1) 2023.10.01
모의고사 문제 풀이  (0) 2023.09.30
개인정보 수집 유효 기간 문제 풀이  (0) 2023.09.28
숫자 짝궁 문제 풀이  (1) 2023.09.28

+ Recent posts