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

2025. 7. 18. 19:30·CodingTest/Programmers

사진을 클릭하면 해당 문제로 이동

 

💡풀이

import java.util.HashMap;
import java.util.Map;

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

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

        // keymap을 순회하며 각 알파벳의 가장 적게 누르는 횟수를 저장함
        // ex) "BACAD" -> ('A', 2) 단 기존에 저장되어있던 'A' 횟수보다 작을 경우
        for(String s : keymap) {
            for(int i = 0; i < s.length(); i++) {
                if(i + 1 <= map.getOrDefault(s.charAt(i), 100)) {
                    map.put(s.charAt(i), i + 1);
                }
            }
        }

        int[] answer = new int[targets.length];
        A:
        for(int index = 0; index < targets.length; index++) {
            int result = 0;
            for(int i = 0; i < targets[index].length(); i++) {
                int count = map.getOrDefault(targets[index].charAt(i), -1);
                if(count < 0) {
                    answer[index] = -1; // map에 저장된 값이 없다면 -1 저장 후 다음 target으로 넘어감
                    continue A;
                }
                result += count;
            }
            answer[index] = result; // 정상적으로 반복문이 종료된 경우 answer에 결과값을 저장
        }
        return answer;
    }
}

 

GitHub - okjunghyeon/Programmers_CodingTest: 프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다.

프로그래머스 관련 코딩테스트 문제를 풀이한 저장소입니다. Contribute to okjunghyeon/Programmers_CodingTest development by creating an account on GitHub.

github.com

 

'CodingTest > Programmers' 카테고리의 다른 글

[프로그래머스, Java] 완주하지 못한 선수  (0) 2025.07.21
[프로그래머스, Java][PCCE 기출문제] 9번 / 이웃한 칸  (0) 2025.07.18
[프로그래머스, Java] 문자열 나누기  (0) 2025.07.18
[프로그래머스, Java] 둘만의 암호  (0) 2025.07.18
[프로그래머스, Java] 로또의 최고 순위와 최저 순위  (0) 2025.07.18
'CodingTest/Programmers' 카테고리의 다른 글
  • [프로그래머스, Java] 완주하지 못한 선수
  • [프로그래머스, Java][PCCE 기출문제] 9번 / 이웃한 칸
  • [프로그래머스, Java] 문자열 나누기
  • [프로그래머스, Java] 둘만의 암호
devoks
devoks
꾸준히 작성해보자!
  • devoks
    ok's 개발 블로그
    devoks
  • 전체
    오늘
    어제
    • 분류 전체보기 (112) N
      • Backend (15)
        • SpringBoot (0)
        • Java (15)
      • Cs (18) N
      • Infra (0)
        • AWS (0)
        • Docker (0)
      • CodingTest (79)
        • Programmers (79)
  • 링크

    • My GitHub
  • 인기 글

  • 태그

    StringTokenizer
    switch
    BufferedWriter
    programmers
    codingtest
    CS
    effectivejava
    java
    BufferedReader
    json
  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
devoks
[프로그래머스, Java] 대충 만든 자판
상단으로

티스토리툴바