[프로그래머스] 대충 만든 자판 자바(Java)
본문 바로가기
알고리즘 풀이

[프로그래머스] 대충 만든 자판 자바(Java)

by IYK2h 2023. 3. 25.
728x90

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

 

프로그래머스

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

programmers.co.kr

풀이

  1. 타겟 문자열 배열 조회
  2. 각 문자열의 문자를 keymap에서 index 값 조회
  3. newIdx값이 -1 아니고, 기존 minIdx 값 보다 작으면 갱신
  4. 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

댓글