반응형
https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제의 핵심이라고 파악한 부분은 현재 단어의 인덱스와 이전 단어의 인덱스와의 차이를 구하자 라고 파악을 하고 최신 캐릭터 인덱스를 캐시를 해두고 비교하는 형태를 사용하기로 파악하였다. 문자의 경우 영어 소문자만이라고 하였기에 특수문자 등이 나올 일도 없을 것이고 나온다 해도 char에서 표시 가능한거면 키 값으로 dict에 넣어서 비교만 하면 되는 간단한 문제이기에..
using System;
using System.Collections.Generic;
public class Solution {
public int[] solution(string s) {
// 정답 반환용
int[] answer = new int[s.Length];
// 캐릭터 별 높은 수치의 인덱스 값 캐시용
var charIndexDict = new Dictionary<char, int>();
for (int i = 0; i < s.Length; i++)
{
char c = s[i];
// 캐시된 것이 있으면 해당 값과 현재 인덱스와 차이를 answer 배열에 저장 후 캐시 딕셔너리에 인덱스 저장
if (charIndexDict.ContainsKey(c))
{
answer[i] = i - charIndexDict[c];
}
// 캐시된 것이 없으면 -1
else
{
answer[i] = -1;
}
charIndexDict[c] = i;
}
return answer;
}
}
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[Lv.1] 성격 유형 검사하기 [프로그래머스_코딩테스트] [2022 KAKAO TECH INTERNSHIP] (0) | 2025.05.11 |
---|---|
[Lv.1] 문자열 나누기 [프로그래머스_코딩테스트] (0) | 2025.05.11 |
[Lv.1] 과일 장수 [프로그래머스_코딩테스트] (0) | 2025.05.09 |
[Lv.1] 카드 뭉치 [프로그래머스_코딩테스트] (0) | 2025.05.09 |
프로그래머스 코딩테스트 컴파일 옵션 기록용 (0) | 2025.05.09 |