개키우는개발자 : )

[자바 알고리즘] 숫자만 추출 본문

Algorithm Programming/Java

[자바 알고리즘] 숫자만 추출

DOGvelopers 2020. 1. 8. 21:26
반응형

광고 클릭은 개발자(저) 에게 큰 힘이 됩니다!!'ㅁ'

 

| 문제

문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만들어진 자연수와 그 자연수의 약수 개수를 출력합니다. 만약 “t0e0a1c2her”에서 숫자만 추출하면 0, 0, 1, 2이고 이것을 자연수를 만들면 12가 됩니 다. 즉 첫 자리 0은 자연수화 할 때 무시합니다. 출력은 12를 출력하고, 다음 줄에 12의 약 수의 개수를 출력하면 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.

 

| 입력설명

숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다.

 

| 출력설명

자연수를 출력하고, 두 번째 줄에 약수의 개수를 출력합니다.

 

| 입력 예제

g0en2Ts8eSoft

 

| 출력 예제

28
6

 

| 풀이

아스키 코드

48보다 크거나 같고 57보다 작거나 같으면 문자열 0~9까지입니다. 

res(0) = res(0) * 10 + (48 - 48)

res(2) = res(0) * 10 + (50 - 48)

res(28) =  res(2) * 10 + (56 - 48)

 

res = 28;

 

28의 약수 개수 는 6개 

import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] a = str.toCharArray();
        int res=0,cnt=0,i;
        for(i=0; i< a.length; i++ ){
            if(a[i] >= 48 && a[i] <=57){
                res = res*10+(a[i]-48);
            }
        }
        System.out.printf("%d\n",res);
        for(i=1;i<=res;i++){
            if(res%i==0) cnt++;
        }
        System.out.printf("%d\n",cnt);
    }
}

결과

반응형
Comments