인프런 커뮤니티 질문&답변
5-1 패턴찾기 문제 질문드립니다.
작성
·
211
0
5-1 패턴찾기 문제에서 강의에서 설명해주신 방법으로 문제를 풀게되면 패턴안에 반복되는 문자열이 있을 때 원하는 결과값을 얻지 못하지 않나요?
예를 들자면, 철수가 패턴을 "1231234"로 설정한 경우를 예시로 n이 14로 주어진다면,
강사님이 풀어주신 방법으로 문제를 풀면 패턴은 "123"이 되어 결과값 27이 반환되나
실제기댓값은 패턴이 "1231234"가 되어 결과값 32가 반환되어야 옳은 결과값이라고 생각됩니다.
저는 find함수를 통해 문제를 구현했습니다. 코드 확인도 같이 부탁드립니다.
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
int n;
cin >> s >> n;
int cnt= 1;
string pattern = s.substr(0,cnt);
while(s.find(pattern,cnt+1)!=string ::npos){
pattern = s.substr(0,++cnt);
}
int pattern_len= pattern.size();
int res = 0;
int len = pattern.size();
for(int i=0; i<len; i++){
res += pattern[i] - '0';
}
res = (n/len) * res;
for(int i=0; i< n%len; i++){
res += pattern[i] - '0';
}
cout << res << endl;
return 0;
}




