안녕 세상아,

[프로그래머스/c++] Lv1 가장 가까운 같은 글자 본문

프로그래머스

[프로그래머스/c++] Lv1 가장 가까운 같은 글자

돈 많은 백수가 되고싶다 2024. 8. 31. 20:48

https://school.programmers.co.kr/learn/courses/30/lessons/142086

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. 첫 문자는 무조건 중복이 없기 때문에 -1을 먼저 삽입한다. 

2. 나머지 문자들은 2중 for문을 사용하여 판별한다. 

3. 기준이 되는 숫자 k를 만들어서 이용한다. 

4. 만약 가장 가까운 곳에 같은 문자가 있으면 (i - j)를 해서 이를 k에 넣어준다. 그대로 break 한 후 벡터에 삽입해준다. 

5. 없을 시에는 k = -1로 선언되어있기 때문에 -1이 벡터에 삽입된다. 

#include <string>
#include <vector>

using namespace std;

vector<int> solution(string s) {
	vector<int> answer;

	answer.push_back(-1);
	for (int i = 1; i < s.size(); i++) {
		int k = -1;
		for (int j = i - 1; j >= 0; j--) {
			if (s[i] == s[j]) {
				k = i - j;
				break;
			}
		}
		answer.push_back(k);
	}
    return answer;
}