[프로그래머스] 가장 가까운 같은 글자(Java)

수경·2022년 12월 14일
0

problem solving

목록 보기
84/174

프로그래머스 - 가장 가까운 같은 글자

풀이

문자열을 순회하면서 HashMap에 {해당 문자=인덱스}를 넣고, 접근해서 결과를 도출
➡️ HashMap에 해당 문자가 저장되지 않았으면 한 번도 나온 적이 없는 문자 => result배열에 -1 저장
➡️ HashMap에 해당 문자가 있으면 value값(가장 최근 인덱스)과 현재 문자의 인덱스 값의 차이를 result배열에 저장


코드

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

public class CloseCharacter {
	public int[] solution(String s) {
		HashMap<Character, Integer> alpha = new HashMap<>();
		int[] result = new int[s.length()];

		for (int i = 0; i < s.length(); i++) {
			if (!alpha.containsKey(s.charAt(i))) result[i] = -1;
			else result[i] = i - alpha.get(s.charAt(i));
			alpha.put(s.charAt(i), i);
		}
		return result;
	}

	public static void main(String[] args) {
		CloseCharacter closeCharacter = new CloseCharacter();
		System.out.println(Arrays.toString(closeCharacter.solution("banana"))); // [-1, -1, -1, 2, 2, 2]
		System.out.println(Arrays.toString(closeCharacter.solution("foobar"))); // [-1, -1, 1, -1, -1, -1]
	}
}
profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글