pullwall
Well done! 코딩
pullwall
전체 방문자
오늘
어제
  • 분류 전체보기 (151)
    • 개발환경 (2)
    • java study (21)
    • 백준 단계별 (51)
    • 알고리즘 (3)
    • AI (43)
    • 클라우드 (3)
      • Kubernetes in Google (3)
    • 논문 (5)
    • 리눅스 (1)
    • AWS (4)
    • 수학 (15)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알고리즘
  • 자바독학
  • Ai
  • LLM
  • 논문리뷰
  • 정렬
  • Java
  • 백준 단계별
  • 쿠버네티스
  • 자바
  • 선택정렬
  • dataset
  • 단계별
  • Kubernetes
  • Google
  • 정렬알고리즘
  • AWS
  • 백준
  • pytorch
  • 수학

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
pullwall

Well done! 코딩

백준 단계별

[Java] 백준 4673: 셀프 넘버

2023. 1. 12. 14:00
728x90
public class Main {
	public static void main(String[] args) {
		boolean[] check = new boolean[10001];
		
		for(int i=0;i<10001;i++) {
			int n =d(i);
			if(n<10001) {
				check[n] = true;
			}
		}
		
		StringBuilder sb = new StringBuilder();
		
		for(int i=1;i<10001;i++) {
			if(!check[i]) {
				sb.append(i).append('\n');
			}
		}
		System.out.println(sb);
	}
	
	
	public static int d(int number) {
		int sum = number;
		while(number!=0) {
			sum=sum+(number%10);
			number=number/10;
		}
		return sum;
	}
}

10000보다 작거나 같은 수를 검사하면서 생성자가 있는 수,

즉 셀프 넘버가 아니라면 true로 바꾸어 false만 출력하게끔 알고리즘을 구성하였다.

 

d함수는 만약 1234가 number로 들어왔다면

sum을 1234로 초기화하고

 

1번째 반복

sum = 1234+4

number = 123

 

2번째 반복

sum = 1238+3

number = 12

 

3번째 반복

sum = 1241+1

number = 1

 

4번째 반복

sum = 1242+2

number = 0

 

에서 끝나게 되고 새로운 숫자인 sum을 return한다.

이 숫자는 생성자가 있는 숫자이므로 main의 첫번째 for문에서 true로 바꾸는 과정을 거친다.

 

두번째 for문에서는 셀프 넘버인 false값들만 출력한다.

 


StringBuiler는 불변 객체인 String (예를 들어 abc와 def String끼리 더하면 새로운 객체인 abcdef를 생성함)

의 성능을 개선하고자 사용한다.

 

이는 기존 데이터에 append를 이용하여 새로운 객체를 생성하지 않고 직접 더하는 방식이다.

728x90

'백준 단계별' 카테고리의 다른 글

[Java] 백준 11654: 아스키 코드  (0) 2023.01.13
[Java] 백준 1065: 한수  (0) 2023.01.12
[Java] 백준 15596: 더하기 사이클  (0) 2023.01.11
[Java] 백준 4344: 평균은 넘겠지  (2) 2023.01.11
[Java] 백준 8958: OX퀴즈  (0) 2023.01.11
    '백준 단계별' 카테고리의 다른 글
    • [Java] 백준 11654: 아스키 코드
    • [Java] 백준 1065: 한수
    • [Java] 백준 15596: 더하기 사이클
    • [Java] 백준 4344: 평균은 넘겠지
    pullwall
    pullwall

    티스토리툴바