[백준] 함수 문제 정리
2022.02.05 네이버 블로그에 정리했던 것!
4673번 셀프 넘버
package 백준함수;
import java.util.*;
public class 셀프넘버 {
public static int selfNum(int x) {
int ans=0;
for(int i=0; i<x;i++) {
int a=i/1000;
int b=(i%1000)/100;
int c=(i%100)/10;
int d=i%10;
int[] arr=new int[x];
for(int j=0;j<x;j++)
{if(i!=(i+a+b+c+d)) {
arr[j]=i;
}
}
}
return arr[];
}
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i=0; i<10001;i++) {
int n = selfNum(i);
}
}
}
- 각각 자리수 숫자들 더해서 다르면 배열에 추가하는 식으로 알고리즘을 구현하려 했으나 컴파일시 나오는 값은 계속해서 9999,,
package 백준함수;
import java.util.*;
public class 셀프넘버 {
public static int selfNum(int x) {
int sum=x;
while(x!=0) {
sum=sum+(x%10); //첫 째 자리수
x = x/10; //10을 나누어 첫 째 자리를 없앤다
}
return sum;
}
public static void main(String[] args) {
boolean[] check = new boolean[10001];
for (int i=0; i<10001;i++) {
int n = selfNum(i);
if(n<10001) {
check[n]=true;
}
}
StringBuilder sb = new StringBuilder();
for (int i = 1; i < 10001; i++) {
if (!check[i]) { // false 인 인덱스만 출력
sb.append(i).append('\n');
}
}
System.out.println(sb);
}
}
-
StringBuilder 클래스
새로운 객체를 만들지 않고도 자유롭게 문자 변경 작업을 할 수 있다. 문자열이 커질수록 자동으로 크기를 추가하기 때문에 초기에 주는 생성자에 크기값을 줄 필요가 크게 없다. 가장 많이 사용하는 문자 추가 메소드:append
-
생각 못한 부분:
boolean 배열을 통해 참 거짓으로 셀프 넘버를 구별할 수 있을 줄이야 boolean 배열을 생각지도 못하고 있었다
-
if(n<10001)
check[n]=true 같이 다 true로 여기고 StringBuilder 클래스를 통해 문자열을 추가하여 false인 인덱스만 출력하기..! !check[i]도 또다른 거짓의 표현임을 되새김
1065번 한수
public class 한수 {
public int function(int x) {
int a=x/100;
int b=(x%100)/10;
int c=x%10;
int cnt = 0;
if((a-b)==(b-c))
{cnt++;}
return cnt;
}
- 배열을 쓰자!! 위에는 틀림
반복되는 구간이 있어야 하는데 그걸 간과함
그리고 0~99까지는 한수인 걸 놓침. 그 이후 수는 cnt=99부터 매기자
import java.util.*;
public class 한수 {
public static int function(int x) {
if(x<100) {
return x;
}
else {
int cnt=99;
for(int i=100;i<=x;i++) {
int a=i/100;
int b=(i%100)/10;
int c=i%10;
if((a-b)==(b-c))
{cnt++;}
}
return cnt;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.print(function(sc.nextInt()));
}
}
Author And Source
이 문제에 관하여([백준] 함수 문제 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@codusl100/백준-함수-문제-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)