티스토리 뷰

알고리즘

백준 #4673 java 2023.01.13

chaewonni 2023. 1. 13. 01:03

셀프넘버 문제!

처음 문제를 보고서는 되게 어려울 것이라 생각했는데 막상 풀기 시작하면 어떻게 풀어야할지 감이 잡혔다. 물론 단계별로 풀어보기에서 함수라는 힌트를 준것도 맞지만..ㅎㅎ

package boj_basic.step5;

public class Q4673 {
	
	static int d(int n) {
		String s = Integer.toString(n);
		int num = 0;
		int sum = 0;
		
		for(int i = 0; i<s.length(); i ++) {
			num = s.charAt(i)-'0';
			sum += num;
		}
		return n+sum;
	}

	public static void main(String[] args) {
		
		int[] array = new int[10001];
		for(int i = 1; i<10001; i++) {
			array[i]=0;
		}
			for(int i = 1; i<10001; i++) {
				if(d(i)<10001)
					array[d(i)]=1;
			}
			for(int j = 1; j<10001; j++) {
				if(array[j]==0) 
					System.out.println(j);
			}

	}

}

근데 코드를 다 짰음에도 뭔가 지저분하다는 느낌이 들었다.

그래서 다른 분들의 코드를 참고하였더니 나처럼 정수형 배열을 만들지 않고....!!!!!!

package boj_basic.step5;

public class Q4673_2 {
	
	static int d(int n) {
		String s = Integer.toString(n);
		int num = 0;
		int sum = 0;
		
		for(int i = 0; i<s.length(); i ++) {
			num = s.charAt(i)-'0';
			sum += num;
		}
		return n+sum;
	}

	public static void main(String[] args) {
		
		boolean check[] = new boolean[10001];
		
		for(int i = 1; i<10001; i++) {
			if(d(i)<10001) {
				check[d(i)]=true;
			}
		}
		
		for(int i =1; i<10001; i++) {
			if(check[i]==false) {
				System.out.println(i);
			}
		}

	}

}

이렇게 boolean형으로 배열을 만든 후에 true, false로 배열에 저장을 해주어 푸셨다.

boolean형 배열은 평상시에 많이 사용하지 않아 내게 다소 생소하여 쓸 생각을 못했다.... ㅠㅠ 

 

또, 함수를 만들 때에도 나는 정수형 인자를 받아 문자열로 바꾸고, 또 거기서 다시 정수형으로 바꾸는 식으로 되게 복잡하고 코드를 작성하였는데, private static int getDn(int n) { int Dn = n; while(n>0) { Dn = Dn + (n%10); n = n/10; } return Dn; }}

[출처] [백준] 4673번 : 셀프 넘버 - JAVA(자바)|작성자 노트북맨

이렇게 간단하게도 작성할 수 있었다. 코딩의 세계는 아직 너무 어려운 것 같다.. 그래도 계속해서 여러문제 도전해보며 실력을 키워나가야겠다.

 

'알고리즘' 카테고리의 다른 글

백준 #1316 java 2023.01.15  (0) 2023.01.15
백준 #2941 java 2023.01.15  (0) 2023.01.15
백준 #1065 java 2023.01.13  (1) 2023.01.13
백준 #3052 java 2023.01.11  (0) 2023.01.11
백준 #1110 java 2023.01.11  (0) 2023.01.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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
글 보관함