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
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 14490 - 백대열(선린인터넷고등학교 교내대회) (0) | 2018.10.17 |
---|---|
백준] 13752 - 히스토그램(ACM-ICPC Regionals) (0) | 2018.10.17 |
백준] 4435- 중간계 전쟁(ACM-ICPC Regionals) (0) | 2018.09.25 |
백준] 1652 - 누울 자리를 찾아라 (0) | 2018.09.23 |
백준] 2246 - 콘도 선정(ACM-ICPC Regionals) (0) | 2018.09.22 |