안녕하세요. 오늘은 개미 수열을 구할 거예요.

문제

https://www.acmicpc.net/problem/28292

아이디어

이 문제는 해결하기 위해서는 몇가지 관찰이 필요합니다.
1. 한번 등장한 수는 계속 등장한다.
2. 4이상의 수는 등장할 수 없다.
이를 통해서 길이가 1,2이면 정답은 1, 길이가 3,4,5이면 정답은 2, 아니면 정답은 3 입니다.

간단히 두번째 관찰을 증명해보자면 4이상의 수가 처음 나오려면 수가 4개 이상 연속해야하는데 i번째 수는 (수)(개수)(수)(개수)... 이런식으로 나오므로 4개가 연속하려면 적어도 두개의 연속한 "수"는 같아야합니다. 하지만 그렇게 같아지면 둘로 나누어지지 않으므로 4이상의 수는 등장할 수 없습니다.

소스코드

#include <iostream>
#define ll long long
using namespace std;


int main()
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);

    ll x;
    cin >> x;
    if (x <= 2) cout << 1;
    else if (x <= 5) cout << 2;
    else cout << 3;
}


감사합니다.

0개의 댓글