파이썬 알고리즘-12 (탐색)숫자만 추출

jiffydev·2020년 8월 25일
0

Algorithm

목록 보기
13/134
post-thumbnail

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

▣ 입력설명
첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다.

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

▣ 입력예제 1
g0en2Ts8eSoft

▣ 출력예제 1
28
6

내 코드

n=input()

# 못 풀었음

print(num)

cnt=0

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

print(cnt)

숫자인지 확인해야 하는 부분이 도저히 생각이 안났다.

풀이

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)

반성점

  • 약수 구하는 부분은 많이 해봐서 쉬웠는데 처음에 문제를 잘못 읽어서 소수 구하는 코드를 썼다. 문제 잘 읽자.
  • res=res*10 + int(x) 이 부분은 배운 곳인데 막상 문제 풀 때는 생각이 안난다. 

배운 것

  • str중에 숫자인 문자가 있을 때 isdecimal()을 사용하면 숫자(0~9)만 골라낼 수 있다.
    10 이상의 숫자를 찾아야 할 경우는 isdigit()을 사용한다.
profile
잘 & 열심히 살고싶은 개발자

0개의 댓글