자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이

[탐색][시뮬레이션] - 숫자만 추출(String)

얄루몬 2022. 7. 1. 16:54

문제

  • 문자와 숫자가 섞여있는 문자열이 주어지고 그 중 숫자만 추출해 순서대로 자연수를 만든다.
  • 첫 자리에 0이 오면 무시해준다.
  • 추출한 자연수를 출력하고 다음 줄에 추출한 자연수의 약수 개수를 출력해준다.

문제 풀이

import sys
sys.stdin = open("input.txt", "r")

s = input()
num = 0
cnt = 0 
for i in s:
    if i.isdigit():
        num = num * 10 + int(i)

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

print(num)
print(cnt)
  • 반복문을 돌면서 해당 문자가 숫자인지를 확인하는 함수 isdigit( )을 사용해 숫자가 맞다면 해당 수를 자연수로 만들어주는 식을 사용해 자연수를 결과적으로 만든다.
  • 1~자기 자신까지의 수에서 나누어 떨어지는 수가 약수이므로 이를 for문을 통해 확인해 cnt를 증가해준다.