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(특정 숫자)를 사용해야 한다.
'코테' 카테고리의 다른 글
[백준 / Java] 1157번 : 단어 공부 (0) | 2023.02.09 |
---|---|
[백준 / Java] 1065번 : 한수 (0) | 2023.02.08 |
[백준 / Java] 4344번 : 평균은 넘겠지 (0) | 2023.02.06 |
[백준 / Java] 8958번 : OX퀴즈 (0) | 2023.02.06 |
[백준 / Java] 10818번 : 최소, 최대 (0) | 2023.02.05 |