알고리즘 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
문제
[숫자만 추출]
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만든다.
만들어진 자연수와 그 자연수의 약수 개수를 출력하는 프로그램을 작성하시오.
만약, '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
중요내용
- res = res * 10 + int(x) 코드는 변수 x로 들어온 문자열을 숫자화 해준다.
- isdigit() 함수는 숫자를 찾아주는 함수이다.
- 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 |
댓글