자료구조and알고리즘
[Java]알고리즘 문제 2번
jackypark
2022. 7. 11. 17:48
입력한수(X)부터 입력한수(Y)까지 정돈된수 출력하기
import java.util.*;
public class AlgoSecond {
List<Integer> numX=new ArrayList<Integer>();
public static void main(String[] args) {
AlgoSecond as=new AlgoSecond();
Scanner sc=new Scanner(System.in);
System.out.println("Input X (100~9999999)인수 입력");
int x=sc.nextInt();
as.splitXNum(x);
System.out.println("Input Y: "+x+"~9999999인수 입력");
int y=sc.nextInt();
as.disp(x, y);//정돈된 수 출력
}
public void splitXNum(int num) {// 입력한수 스플릿해주기
if(num>0) {
splitXNum(num/10);// 자리수만큼 재귀
numX.add(num%10);//어레이리스트에 스플릿한 수 추가
}
}
public void disp(int x,int y) {
int cnt=0;
while(x<y) {
int flag=0; //정돈된수인지 아닌지 판단
for(int i=0;i<numX.size();i++) {
for(int j=i+1;j<numX.size();j++) {
if(numX.get(i)>=numX.get(j)) {//앞자리수가 다음자리수보다 크다면
flag=1;// 정돈이 안된 수
}
}
}
if(flag==0) {//정돈된 수
System.out.print(x+"\t");
cnt++;//정돈된 수 몇번 했는지 확인
}
x++;
numX.clear();// 리스트 삭제
splitXNum(x);//x넣고 x값 스플릿해서 어레이에 다시저장
}
System.out.println();
System.out.println("Count: "+cnt);
}
}