문제 설명
문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자의 위치를 return
https://school.programmers.co.kr/learn/courses/30/lessons/142086
문제 풀이법
이중 for문을 사용하면 간단하게 풀 수 있다
밖의 for문은 문자열의 문자 하나하나씩 반복하는 for문이고, 안의 for문은 처음부터 해당 문자가 있는 곳까지 반복하는 for문이다
if문을 통해 같은 문자가 등장하면 해당 문자들의 인덱스 차를 구한 뒤 answer에 넣어준다
소스 코드
#include <string>
#include <vector>
using namespace std;
vector<int> solution(string s) {
vector<int> answer;
for(int i = 0; i < s.size(); i++) {
int find = -1;
for (int j = 0; j < i; j++) {
if (s[i] == s[j])
find = i - j;
}
answer.push_back(find);
}
return answer;
}
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 2단계 - 최솟값 만들기 (0) | 2023.12.27 |
---|---|
[프로그래머스] 2단계 - JadenCase 문자열 만들기 (0) | 2023.12.27 |
[프로그래머스] 2단계 - 최댓값과 최솟값 (0) | 2023.12.22 |
[프로그래머스] 1단계 - 과일 장수 (0) | 2023.12.22 |
[프로그래머스] 0단계 - 안전지대 (0) | 2023.12.22 |