728x90
https://school.programmers.co.kr/learn/courses/30/lessons/160586
풀이
- 타겟 문자열 배열 조회
- 각 문자열의 문자를 keymap에서 index 값 조회
- newIdx값이 -1 아니고, 기존 minIdx 값 보다 작으면 갱신
- minIdx 값이 그대로면 -1, 아니면 minIdx + 1 값
코드
class Solution {
public int[] solution(String[] keymap, String[] targets) {
int[] answer = new int[targets.length];
//타겟 문자열 배열 조회
for (int j = 0; j < targets.length; j++) {
String str = targets[j];
for (int i = 0; i < str.length(); i++) {
int minIdx = Integer.MAX_VALUE;
// 각 문자열의 문자를 keymap에서 index 값 조회
char c = str.charAt(i);
for (String map : keymap) {
int newIdx = map.indexOf(c);
// newIdx값이 -1 아니고, 기존 minIdx 값 보다 작으면 갱신
if (minIdx > newIdx && newIdx != -1) {
minIdx = newIdx;
}
}
// minIdx 값이 그대로면 -1, 아니면 minIdx + 1 값
if (minIdx == Integer.MAX_VALUE) {
answer[j] = -1;
break;
}
answer[j] += minIdx + 1;
}
}
return answer;
}
}
728x90
'알고리즘 풀이' 카테고리의 다른 글
[프로그래머스] 크레인 인형뽑기 게임 자바(Java) (0) | 2023.03.27 |
---|---|
[프로그래머스] 바탕화면 정리 자바(Java) (0) | 2023.03.26 |
[프로그래머스] 덧칠하기 자바(Java) (0) | 2023.03.24 |
[프로그래머스] 멀리 뛰기 자바(Java) (0) | 2023.03.23 |
[프로그래머스] 예상 대진표 자바(Java) (0) | 2023.03.23 |
댓글