Computer Science/Algorithm Problem

백준] 2154 - 수 이어 쓰기3(COCI 2004)

TwinParadox 2018. 10. 9. 08:07
728x90

시간 제한 : 2초

메모리 제한 : 128MB




입력

첫째 줄에 N(1≤N≤100,000)이 주어진다.




출력

첫째 줄에 N이 가장 먼저 등장하는 위치를 출력한다. 앞에서부터 몇 번째인지를 출력하면 된다.




소스코드

#include <iostream>
#include <string>
using namespace std;
int main(void)
{
    int idx, n;
    string str="";
    cin>>n;
    for(int i=1;i<=n;i++) {
        str+=to_string(i);
    }

    idx=str.find(to_string(n));
    cout<<idx+1;
}




Tip

백준에서 현재 문제 분류를 수학으로 해두었으나, 수학인 이유를 모르겠다. 수학보다는 문자열 처리, 탐색 분야인 것으로 보고 C++ 14에서의 string 관련 함수들을 이용하면 쉽게 찾을 수 있을 것이다. 1부터 N까지의 수를 이어가기 때문에 언젠가는 N이 등장한다.



728x90