헐랭미 2020. 8. 26. 18:40

어려운 문제는 아니다. 테케 1~2개가 계속 틀려서 엎어졌다.

 

오늘의 교훈 : 테스트 케이스를 만들 수만 있다면 최대한 빡빡하게 만들어보자.

 

 

 

 

 

더보기

a가 1000개 일때 같은 귀찮은거 안했다가 피봤다

 

15번째 줄의 cnt를 1대신 0으로 주고 cnt 초기화 할때마다 0으로 했는데 이러면 안되는것이

0번째에서 cnt가 0이되고 1번째 ~ 999번째가 cnt가 올라가니 999가 나와서 답이 4가 나왔던 것이다.

오우쒰

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#define pii pair<intint>
using namespace std;
 
int solution(string s)
{
    int ans = s.size();
    for (int i = 1; i <= s.size() / 2; i++)
    {
        int cur_size = 0;
        string cur_string = "";
        int cnt = 1;
        for (int j = 0; j < s.size(); j += i)
        {
            string t = s.substr(j, i);
            if (cur_string == t)
                cnt++;
            else
            {
                if (cnt == 1)
                    cur_size += cur_string.size();
                else
                {
                    cur_size += (cur_string.size() + to_string(cnt).size());
                    cnt = 1;
                }
                cur_string = t;
            }
 
        }
        if (cnt == 1)
            cur_size += cur_string.size();
        else
            cur_size += (cur_string.size() + to_string(cnt).size());
        
 
    //    cout << cur_size << '\n';
        if (ans > cur_size)
            ans = cur_size;
    }
    return ans;
}
 
 
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
 
    string s;
    for (int i = 0; i < 1000; i++)
        s += 'a';
//    string s = "aaaaaaaaaaabbbbbbcccccccccccc";
    cout << solution(s);
 
}
cs