문제
- 문자와 숫자가 섞여있는 문자열이 주어지고 그 중 숫자만 추출해 순서대로 자연수를 만든다.
- 첫 자리에 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를 증가해준다.
'자료구조와 알고리즘 > 개인적인 코딩테스트 관련 풀이' 카테고리의 다른 글
[탐색][시뮬레이션] - 수들의 합(List) (0) | 2022.07.06 |
---|---|
[탐색][시뮬레이션] - 카드 역배치(List) (0) | 2022.07.01 |
[탐색][시뮬레이션] - 회문 문자열 검사(String) (0) | 2022.07.01 |
점수 계산 (0) | 2022.06.30 |
주사위 게임 (0) | 2022.06.30 |