[백준 / Java] 4673번 : 셀프 넘버

개발자가 되고 싶어요 ㅣ 2023. 2. 7. 10:14

https://www.acmicpc.net/problem/4673

 

4673번: 셀프 넘버

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

www.acmicpc.net

 


 


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.util.*;
 
public class Main {
 
    public static int selfNum(int n) {
        List<Integer> nums = new ArrayList<Integer>();
        nums.add(n);
        while (n > 0) {
            nums.add(n % 10);
            n /= 10;
        }
        for (int num:
                nums) {
            n += num;
        }
        return n;
    }
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        List<Integer> numList = new ArrayList<Integer>();
        for (int i = 1; i <= 10000 ; i++) {
            numList.add(i);
        }
 
        for (int i = 1; i <= 10000; i++) {
            if (numList.contains(selfNum(i))) {
                numList.remove(Integer.valueOf(selfNum(i)));
            }
        }
        for (int num :
                numList) {
            System.out.println(num);
        }
    }
}
cs

 

 

 

1. 함수 선언 방법 ( 매개변수와 리턴값의 유무에 따라 달라짐)

    매개변수가 있고 리턴값이 있는 셀프넘버를 만드는 함수를 선언해준다.

    -> 매개변수 : int n / 리턴값 : void (x) , return(o)

2. 숫자를 String으로 변환하지 않고 각 자릿수로 나누는 방법

3. 파이썬의 range -> 자바는 반복문으로 리스트에 하나하나 담기

4. 파이썬의 in -> 자바의 contains

5. remove는 index 또는 object로 사용 가능하다.

    -> 이때 배열에서 특정 숫자를 지우고 싶을때 바로 특정 숫자를 넣으면 index로 인식 되어 버리니

        Integer.valueOf(특정 숫자)를 사용해야 한다.