문제 링크: https://www.acmicpc.net/problem/4673
백준 함수 2단계 - 4673번 셀프 넘버를 풀어보았다.
풀이: 셀프 넘버가 아닌 수를 만드는 함수를 만들고, 셀프 넘버를 남긴다.
C++
#include <iostream>
using namespace std;
int selfnum(int n) // 셀프 넘버가 아닌 수를 생성
{
int sum=n;
while(n!=0)
{
sum+=n%10;
n/=10;
}
return sum;
}
int main()
{
int arr[10001]={0,};
for(int i=1;i<10001;i++)
{
int idx=selfnum(i);
if(idx<=10001) // 10000까지만 구하면 됌
{
arr[idx]=1;
}
}
for(int i=1;i<10001;i++)
{
if(arr[i]!=1) // 남은건 셀프 넘버 뿐
{
cout<<i<<"\n";
}
}
}
Python
def selfnum(n): # 셀프 넘버가 아닌 수 생성
sum=n
while(n!=0):
sum+=n%10
n=int(n/10)
return sum
arr=[i+1 for i in range(10000)] # 1부터 9999까지 리스트
for i in range(1,10000):
check=selfnum(i)
if(check in arr): arr.remove(check) # 셀프 넘버가 아닌 수 지우기
for i in range(len(arr)):
print(arr[i])
'코테용 문제풀이 > 백준' 카테고리의 다른 글
아스키 코드 풀이 (0) | 2022.12.31 |
---|---|
한수 풀이 (0) | 2022.12.31 |
정수 N개의 합 풀이 (0) | 2022.12.31 |
평균은 넘겠지 풀이 (0) | 2022.12.31 |
OX퀴즈 풀이 (0) | 2022.12.31 |