BOJ 문제풀이

백준 4673번 c++ 풀이

koreasunoo 2021. 10. 10. 23:27

전략:

1. 10001 길이의 배열을 bool타입으로 만들어주고 기본 값을 true로 설정해준다

2. 1부터 10001까지 반복하여 해당 숫자와 각자리수 값을 더한 값의 배열 해당 인덱스를 false로 설정해주고 만약 sum이 10000을 넘어간다면 다음 경우를 실행한다.

3. 배열을 확인하여 true값을 갖고 있는 인덱스를 출력한다.

 

코드:

#include <bits/stdc++.h>
using namespace std;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	bool arr[10001];
	for(int i= 0; i<10001; ++i){
		arr[i]=true;
	}
	for(int i= 1; i<10001; ++i){
		string s = to_string(i);
		int sum = 0;
		for(int i= 0; i<s.length(); ++i){
			sum+= (int)(s[i]-'0');
		}
		sum+=i;
		if(sum>10000){
			continue;
		}
		arr[sum] = false;
	}
	for(int i= 1; i<=10000; ++i){
		if(arr[i]){
			cout<<i<<"\n";
		}
	}
}

'BOJ 문제풀이' 카테고리의 다른 글

백준 2003번 c++ 풀이  (0) 2021.10.10
백준 11728번 c++ 풀이  (0) 2021.10.10
백준 2193번 c++ 풀이  (0) 2021.10.10
백준 2436 c++ 풀이  (0) 2021.10.10
백준 10867번 c++ 풀이  (0) 2021.09.19