programmers.co.kr/learn/courses/30/lessons/60057?language=cpp
int solution(string s) {
int answer = 1001;// s의 길이가 최대 1000이므로
int s_size = s.length();
string temp = "";
int same = 1;
if (s_size == 1)
{
return 1;
}
for (int i = 1; i<= s_size / 2; ++i)
{
string save = "";
for (int j = 0; j < s_size; j+=i) {
temp = s.substr(j, i);
if (temp.length() % i != 0)
{
if (same != 1) {
save += to_string(same);
}
save += temp;
break;
}
string value = s.substr(i + j, i);
if (temp == value)
{
// 같으면
same += 1;
}
else
{
// 다르면
if (same != 1) {
save += to_string(same);
}
save += temp;
same = 1;
}
}
int temp_length = save.length();
if (temp_length < answer)
{
answer = temp_length;
}
}
return answer;
}
이.. 이게 생각보다 어려웠다. 이거 레벨2 맞나?
왜.. 왜이렇게 어렵지... 너무 어렵게 생각했나? 계속 고치고 고치다가 맞았는데 앞에 풀었던건 왜 틀렸는지 모르겠음
'알고리즘 & 자료구조 > 프로그래머스' 카테고리의 다른 글
[C++/알고리즘] 프로그래머스 (카펫) (0) | 2020.09.11 |
---|---|
[C++/알고리즘] 프로그래머스 (프린터) (0) | 2020.09.10 |
[C++/알고리즘] 프로그래머스 (보석 쇼핑) (0) | 2020.09.08 |
[C++/알고리즘] 프로그래머스 (크레인 인형 뽑기) (0) | 2020.09.03 |
[C++/알고리즘] 프로그래머스 (더 맵게) (0) | 2020.05.17 |