Deff_Dev
[프로그래머스] 가장 가까운 같은 글자 (C++) 본문
문제
풀이
맵을 이용하여 풀이했다.
처음 탐색한 알파벳이라면 answer에 -1 저장 후, i + 1 값 설정
이미 탐색한 알파벳이라면 얼마나 가까운지 구하고, 해당 위치 + 1 저장
여기서 i + 1을 한 이유
맵의 기본값이 0이기 때문에 i로 저장하게 된다면, i가 0일 때 -1이 중복으로 들어가는 경우가 생겨서 + 1을 저장
#include <string>
#include <vector>
#include <map>
using namespace std;
map <char, int> word;
vector<int> solution(string s) {
vector<int> answer;
for(int i = 0; i < s.length(); i++){
if(word[s[i]] == 0){
answer.push_back(-1);
}
else{
answer.push_back(i + 1 - word[s[i] ]);
}
word[s[i]] = i + 1;
}
return answer;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 체육복 (C++) (0) | 2024.11.05 |
---|---|
[프로그래머스] 완주하지 못한 선수 (C++) (0) | 2024.11.05 |
[프로그래머스] 충돌위험 찾기 (C++) (2) | 2024.11.02 |
[프로그래머스] 메뉴 리뉴얼 (C++) (1) | 2024.09.10 |
[프로그래머스] 등굣길 (C++) (0) | 2024.09.05 |