잡다한 배똥월드

728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

4673번: 셀프 넘버

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,

www.acmicpc.net

 

 

 

 

 

 

import java.io.*;
public class Main {
	public static void main(String[] args) throws IOException{
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
        //체크용 boolean 배열
		boolean[] list = new boolean[10001];
		
        //1부터 10000까지 d() 함수로 보내고 체크하기
		for (int i = 1; i <= 10000; i++) {
			int num = d(i); //d함수 리턴값 : 정수
            
            //만약 리턴값이 10000보다 작고, 만들어진 적 없는 숫자라면 true로 체크하기
			if (num <= 10000 && !list[num]) list[num] = true;
		}
		
        //1부터 10000까지 방문 기록이 없는 숫자는 출력하기
		for (int i = 1; i < list.length; i++) {
			if (!list[i]) bw.write(i + "\n");
		}
		
		bw.flush();
		bw.close();
	}
	
	public static int d(int num) {
		int result = num;
		while (num > 0) {
			result += (num % 10);
			num /= 10;
		}
		return result;
	}
}

 

문제 결과 메모리 시간 코드 길이
4673 맞았습니다!! 14484 KB 144 ms 592 B

 

 

 

 

 

 

728x90

+ Recent posts