GitHubSeob
C++ / 프로그래머스 / 가장 가까운 같은 글자 본문
문제
https://school.programmers.co.kr/learn/courses/30/lessons/142086
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
알파벳위치를 나타내는 alp벡터를 알파벳 개수인 26의 사이즈로 만든다.
첫 글자라면 해당 값이 초기화된 -1이므로 answer에 -1을 push 한다.
첫 글자가 아니라면 idx에서 알파벳 위치가 저장된 alp을 통해 이전 알파벳 위치를 구하고 뺀 값을 answer에 push 한다.
그다음 현재 알파벳의 위치로 갱신한다.
코드
#include <string>
#include <vector>
using namespace std;
vector<int> solution(string s) {
int idx(0);
vector<int> answer;
vector<int>alp(26, -1);
for (idx = 0; idx < s.size(); ++idx) {
if (alp[s[idx] - 'a'] == -1) {
answer.push_back(-1);
}
else {
answer.push_back(idx - alp[s[idx] - 'a']);
}
alp[s[idx] - 'a'] = idx;
}
return answer;
}
'Programmers > Level 1' 카테고리의 다른 글
C++ / 프로그래머스 / 푸드 파이트 대회 (0) | 2023.06.24 |
---|---|
C++ / 프로그래머스 / 콜라 문제 (0) | 2023.06.24 |
C++ / 프로그래머스 / 추억 점수 (0) | 2023.06.24 |
C++ / 프로그래머스 / 명예의 전당 (1) (0) | 2023.06.24 |
C++ / 프로그래머스 / 과일 장수 (0) | 2023.06.24 |