728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
이 문제는 이중 반복문을 사용해서 자신보다 앞에있는 문자들과 비교한 뒤, 같은 문자가 있다면 그 문자와의 거리를, 같은 문자가 없다면 -1을 추가한 뒤 반환시키면 된다.
정답 코드
C++
#include <string>
#include <vector>
using namespace std;
vector<int> solution(string s) {
vector<int> answer;
for (int i = 0; i < s.length(); i++) {
bool first = true;
for (int j = i - 1; j > -1; j--) {
if (s[i] == s[j]) {
first = false;
answer.push_back(i - j);
break;
}
}
if (first) answer.push_back(-1);
}
return answer;
}
python
def solution(s):
answer = []
for i in range(len(s)) :
first = True
for j in range(i - 1, -1, -1) :
if s[i] == s[j] :
answer.append(i - j)
first = False
break
if first :
answer.append(-1)
return answer
728x90
'Algorithm > PS' 카테고리의 다른 글
[C++, python] 프로그래머스 - 명예의 전당(1) (0) | 2023.02.25 |
---|---|
[C++, python] 프로그래머스 - 과일 장수 (0) | 2023.02.25 |
[C++, python] 프로그래머스 - 크기가 작은 부분 문자열 (0) | 2023.02.25 |
[C++, python] BOJ, 백준 15992 - 1, 2, 3 더하기 7 (0) | 2023.02.25 |
[C++, python] BOJ, 백준 2410 - 2의 멱수의 합 (0) | 2023.02.25 |