string에서 해당 글자가 이전에 나온적 있다면 그 거리를 answer에 넣어주면 되고 없으면 -1 을 넣어주면 되는 문제이다. 알파벳이 나오면 인덱스를 갱신해주면 된다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(string s)
{
vector<int> answer;
int alpha[26]; memset(alpha, -1, sizeof(alpha));// 알파벳 배열
for(int i=0;i<s.size();i++)
{
int num = s[i]-'a';// 해당 문자
if (alpha[num] == -1) answer.push_back(-1);// 한번도 나온적 없다면
else answer.push_back(i - alpha[num]);// 나온적 있다면 거리
alpha[num] = i;// 인덱스 갱신
}
return answer;
}