Java/Programmers

[Lv.1]가장 가까운 같은 글자

GLOWWW 2023. 1. 27. 18:20

이 문제는 HashMap의 개념만 알고 있으면 쉬운 문제이다.

Map 컬렉션에서 키는 중복저장될 수 없다는것을 이용한다. 동일한 키로 저장이되면 기존의 값은 없어지로 새로운 값으로 대치되는데 이것을 이용하여 문제를 풀면 된다.

package Lv_1;

import java.util.Arrays;
import java.util.HashMap;

public class 가장가까운같은글자 {
    public static int[] solution(String s) {
        int[] answer = new int[s.length()];
        HashMap<Character, Integer> chk = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            if (!chk.containsKey(s.charAt(i))) {
                answer[i] = -1;
            } else {
                answer[i] = i - chk.get(s.charAt(i));
            }
            chk.put(s.charAt(i), i);
        }
        return answer;
    }

    public static void main(String[] args) {
        String s = "banana";
        int[] result = solution(s);
        System.out.println(Arrays.toString(result));
    }
}

하지만 HashMap을 떠올리지 못했었다.. HashMap을 다시한번 복습하자!