목차
숫자만 추출
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다.
만들어진 자연수와 그 자연수의 약수 개수를 출력합니다.
만약 “t0e0a1c2h0er”에서 숫자만 추출하면 0, 0, 1, 2, 0이고 이것을 자연수를 만들면 120이 됩니다.
즉 첫자리0은 자연수화 할때 무시합니다.
출력은 120를 출력하고, 다음 줄에 120의 약수의 개수를 출력하면 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
▣ 입력설명
첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다.
▣ 출력설명
첫 줄에 자연수를 출력하고, 두 번째 줄에 약수의 개수를 출력합니다.
▣ 입력예제 1
g0en2Ts8eSoft
▣ 출력예제 1
28
6
나의 코드
s=list(map(str,input()))
NUM=[]
res=0
for i in range(len(s)):
if s[i].isdecimal():
res=res*10+int(s[i])
cnt=0
for i in range(1,res+1):
if res%i==0:
cnt+=1
print(res,cnt)
isdeciaml함수로 숫자인지 판단한 후 res=res*10+int(s[i])로 숫자를 생성하였다.
이후 약수 카운팅 !
정답코드
import sys
sys.stdin=open("input.txt", "r")
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)
입력값을 리스트로 받지 않고 문자열 하나로 받아서 순회한것 이외는 나의 코드와 일치 한다.
'코딩테스트[파이썬] > 알고리즘 문제풀이 입문' 카테고리의 다른 글
[탐색 & 시물레이션] - 수들의 합 (0) | 2024.02.05 |
---|---|
[탐색&시물레이션] - 두 리스트 합치기 (2) | 2024.02.05 |
[탐색&시물레이션] - 회문 문자열 검사 (2) | 2024.02.05 |
[구현력 키우기] - 점수계산 (0) | 2024.02.05 |
[구현력 키우기] - 주사위 게임 (2) | 2024.02.05 |