티스토리 뷰
셀프넘버 문제!
처음 문제를 보고서는 되게 어려울 것이라 생각했는데 막상 풀기 시작하면 어떻게 풀어야할지 감이 잡혔다. 물론 단계별로 풀어보기에서 함수라는 힌트를 준것도 맞지만..ㅎㅎ
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
링크
TAG
- SQLD
- 회원탈퇴
- 지연로딩
- 웹MVC
- 프론트엔드
- 인텔리제이
- 스프링 커뮤니티
- 백준
- 커뮤니티
- elasticsearch
- SQL
- 다이나믹 프로그래밍
- 자바 스프링
- 준영속
- 파이썬
- JPA
- 스프링부트
- 스프링
- 스프링 북마크
- 비영속
- EnumType.ORDINAL
- 로그아웃
- 로깅
- 웹 MVC
- 자바
- 북마크
- SQL 레벨업
- DP
- 백준 파이썬
- 영속
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함