문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
- 셀프 넘버를 출력하는 selfNum 함수를 형성하였습니다.
- 각 더하기 연산을 한 값을 배열에 저장하였습니다.
- 이중 for문을 사용하여 1~10000까지 더하기 연산 값과 동일하지 않은 수를 찾아서 bw에 저장하였습니다.
- BufferedWriter를 사용하여 결과를 모두 출력하였습니다.
결과 코드
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException{
selfNum(10000); //함수 호출
}
public static void selfNum(int index) throws IOException{ //셀프 넘버 계산 함수
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//결과 값을 출력하는 BufferedWriter
int[] arr = new int[index]; //더하기 연산 저장할 배열
for(int i=0;i<index;i++){ //더하기 연산 후 값 배열에 저장
int num = i+1;
arr[i] = num + (num/10000) + (num%10000)/1000 + (num%1000)/100 + (num%100)/10 + (num%10);
}
for(int i=1;i<=index;i++){ //1~10000까지 셀프넘버 찾아서 bw에 저장하기
int stack=0;
for(int j=0;j<index;j++){
if(i==arr[j]){
stack++;
}
}
if(stack==0){
bw.write(i+"\n");
}
}
bw.flush(); //결과 출력하기
bw.close();
}
}
'백준' 카테고리의 다른 글
[백준] 단계별로 풀어보기(단계:7,문자열,JAVA)11654번, 아스키 코드 (0) | 2021.12.18 |
---|---|
[백준] 단계별로 풀어보기(단계:6,함수,JAVA)1065번, 한수 (0) | 2021.12.17 |
[백준] 단계별로 풀어보기(단계:6,함수,JAVA)15596번, 정수 N개의 합 (0) | 2021.12.16 |
[백준] 단계별로 풀어보기(단계:5,1차원 배열,JAVA)4344번, 평균은 넘겠지 (0) | 2021.12.16 |
[백준] 단계별로 풀어보기(단계:5,1차원 배열,JAVA)8958번, OX퀴즈 (0) | 2021.12.15 |
댓글