본문 바로가기

Algorithm Problems/기타

[백준/C++] 28135번: Since 1973

문제

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


문제 요약

n이 주어졌을 때, 1부터 차례대로 수를 셀 때, 몇 번째 수를 셀 때 N이 처음으로 등장하는지 출력한다.


코드

#include <iostream>
#include <string>

using namespace std;

int n, cnt;

int main() {
	cin >> n;

	for (int i = 0; i < n; i++) {
		if (to_string(i).find("50") == string::npos) {
			cnt += 1;
		}
		else {
			cnt += 2;
		}
	}

	cout << cnt;

	return 0;
}

코드 설명

1부터 하나씩 숫자를 세고, find 함수를 사용해서 문자열 "i"에 "50"이 들어있는지 확인한다.


고찰

find 함수를 사용하여 문자열 a에 문자열 b가 들어있는지 확인할 수 있다.

 

만약 문자열 a에 문자열 b가 들어있지 않다면, std::string::npos를 반환한다.