카카오는 항상 1번은 문자열장난을 많이 치는듯 하다.😳 무난하게 풀것만 같지만 하나씩 함정이 숨어있는 그런 느낌이다.
문자열
구현
이 합해진 문제.tmp
문자열에 직접 구현을 해줬지만, 굳이 이렇게 안하고 처음부터 s.size()
를 저장한 int
변수에서 중복되는 수만큼 마이너스 시켜줘도 될 것 같다.#include <string>
#include <vector>
using namespace std;
int solution(string s)
{
int answer = s.length();
for (int i = 1; i <= s.length() / 2; i++)
{
int cnt = 1;
string leftNum = s.substr(0, i);
string tmp;
for (int j = i; j < s.length(); j += i)
{
string rightNum = s.substr(j, i);
if (leftNum == rightNum)
{
cnt++;
}
else
{
if (cnt > 1)
tmp += to_string(cnt);
tmp += leftNum;
leftNum = rightNum;
cnt = 1;
}
}
if (cnt > 1)
tmp += to_string(cnt);
tmp += leftNum;
answer = min(answer, (int)tmp.size());
}
return answer;
}