본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 4673/c++] 셀프 넘버

by tokkiC 2022. 6. 23.

문제 자체는 아주 간단하다 하지만!!!

왜인지 모르겠는데 주석부분의 i를 통해 구하려고 할 때 답이 달라지고 멈추고

난리라서 왜 그런지 이해하려고 하다가 결국 코드를 다른 방법으로 써서 통과한 문제이다

다른 분들의 풀이를 보면 함수로 빼서 하시던데 굳이 그럴 필요는 못느낀 문제였다

근데 왜 저게 안되는거야 아오...

#include <bits/stdc++.h>
using namespace std;


int main(){
	bool t[10004];	
	
	for(int i=1; i<=10000; i++){
		t[i]=true;
	}
	
	for(int i=1; i<=10000; i++){
		int k=i;
		int sum=0;
//		k = (i/1000) + ((i%100)/10) + ((i%10)/10) + i%10 + i;
////	k = (i/1000) + ((i/100)%10) + ((i/10)%10) + i%10 + i;
//		if(k<=10000)
//			t[k] = false;
		while(k!=0){
			sum += (k%10);
			k/=10;
		}
		if(i+sum<=10000)
			t[i+sum]=0;
	}
	
	for(int i=1; i<=10000; i++){
		if(t[i])
			cout << i << "\n";
	}
	
	return 0;
}

 

댓글