알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄

 

셀프넘버


 

Think🤔

 

static 메소드를 만들어서 d(i) 구하는 함수를 구현할 건데
간단하게 static은 메소드는 인스턴스 생성하지 않고 호출 가능 , 메모리 효율성 , 유틸리티 메서드여서 수학적계산이나 문자열 처리와 같은 작업을 수행할때 겍체의 상태와 무관하게 독립적으로 진행됨

일단 셀프 넘버 d(i)를 구하는 공식

public static int d(int n){
int sum = n;
while(n > 0){
sum += (n % 10); // 자릿수 더하기 13이면 3
n /= 10; // 다음 1까지 해야되므로
}
return sum;
}


Solution✍

 

import java.util.HashSet;
import java.util.Set;

class Main{
    public static void main(String[] args) {
		Set<Integer> a1 = new HashSet<>();
		Set<Integer> a2 = new HashSet<>();
		
		for(int i=1; i<10000; i++){
			a1.add(i);
			a2.add(d(i));
		}
		
		a1.removeAll(a2);
		
		for(int num : a1){
			System.out.println(num);
		}
    }
	
	public static int d(int n){
		int sum = n;
		while(n > 0){
			sum += (n % 10); // 자릿수 더하기 13이면 3
			n /= 10; // 다음 1까지 해야되므로
		}
		return sum;
	}
}

 

Review🤩

 

Set을 이용하여 처리


 

+ Recent posts