본문 바로가기
알고리즘

Algorithm - 숫자만 추출

by DGK 2021. 11. 7.

 

알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

문제

[숫자만 추출]

 

문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만든다.

만들어진 자연수와 그 자연수의 약수 개수를 출력하는 프로그램을 작성하시오.

 

만약, 't0e0a1c2h0er' 에서 숫자만 추출하면 0, 0, 1, 2, 0이고 이것을 자연수를 만들면 120이 된다.

즉, 첫 자리 0은 자연수로 만들 때 무시한다. 

이처럼 결과는 첫 줄에 120을 출력하고, 다음줄에 120의 약수의 개수를 출력하면 된다. 

추출하여 만들어지는 자연수는 100,000,000을 넘지 않는다.  

 

 

*입력 설명

첫 번째 줄에는 숫자가 섞인 문자열이 주어진다.

단, 문자열의 길이는 50을 넘지 않는다.

 

*출력 설명

첫 번째 줄에는 추출하여 만든 자연수를 출력한다.

두 번째 줄에는 해당 자연수의 약수 개수를 출력한다. 

 


 

 

풀이(Python)

답안

import sys
sys.stdin = open('AA/input_12.txt', 'rt')
s = input()

res = 0
for x in s:
    if x.isdecimal():
        res = res * 10 + int(x)
print(res)

cnt = 0
for i in range(1, res + 1):
    if res % i == 0:
        cnt += 1
print(cnt)

'''
출력 :

28
6

'''

 

input_12.txt(입력)

g0en2Ts8eSoft

 

 

중요내용

  1. res = res * 10 + int(x) 코드는 변수 x로 들어온 문자열을 숫자화 해준다.
  2. isdigit() 함수는 숫자를 찾아주는 함수이다.
  3. isdecimal() 함수는 0~9까지의 숫자를 찾아주는 함수이다.

 

 

'알고리즘' 카테고리의 다른 글

Algorithm - 두 리스트 합치기  (0) 2021.11.07
Algorithm - 카드 역배치  (0) 2021.11.07
Algorithm - 회문 문자열 검사  (0) 2021.11.07
Algorithm - 점수 계산  (0) 2021.11.02
Algorithm - 주사위 게임  (0) 2021.11.02

댓글