입력한수(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);
}
}'자료구조and알고리즘' 카테고리의 다른 글
| [알고리즘] Stack 이해하기 직접만들기+ Stack<E>사용하기 (0) | 2022.07.14 |
|---|---|
| [알고리즘] 숫자 야구게임 (0) | 2022.07.13 |
| [알고리즘] Binary Search and Recursive (0) | 2022.07.13 |
| [알고리즘]BabyGin 판단 문제(순열 사용) (0) | 2022.07.12 |
| [Java] 알고리즘 문제풀기 1번문제 (0) | 2022.07.11 |
댓글