728x90
> 탐색 & 시뮬레이션 (string 편)
📖 문제 : 약수 구하기
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
만들어진 자연수와 그 자연수의 약수 개수를 출력합니다.
만약 “t0e0a1c2h0er”에서 숫자만 추출하면 0, 0, 1, 2, 0이고 이것을 자연수를 만들면 120이 됩니다.
즉 첫자리 0은 자연수화할 때 무시합니다. 출력은 120 를 출력하고, 다음 줄에 120의 약수의 개수를 출력하면 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
입력설명
첫 줄에 숫자가 적힌 문자열이 주어집니다. 문자열의 길이는 50을 넘지않습니다.
출력설명
첫 줄에 자연수를 출력하고, 두 번째 줄에 약수의 개수를 출력합니다.
입력예제 1
g0en2Ts8eSoft
출력예제 1
28
6
코드
import sys
#sys.stdin = open("input.txt", "r")
s = input()
res = 0
for x in s:
if x.isdecimal(): # 검사하는 문자가 숫자인지
res = res*10 + int(x) # 일의자리 숫자로 추가하는 방법
# 약수 구하기
cnt = 0
for i in range(1, res+1):
if res%i==0:
cnt+=1
⭐️ Point ! ⭐️
- 문자열 검사
(문자).isdecimal() | (문자).isdisit() |
0~9 숫자인지 판단 | 2^23과 같은 모든 숫자인 값을 판단 |
- for 문을 이용해 주어지는 숫자 값을 일의 자리로 만들기
res = res*10 + int(i)
23(이십삼) 에 입력값 6을 일의 자리로 -> 236(이백삼십육) - 약수 구하기
for i in range(1, num+1):
if num%i == 0:
cnt+=1
출처
- 인프런 : 파이썬 알고리즘 문제 풀이
728x90
'Algorithm (Python, Java, SQL) > Inflearn Study' 카테고리의 다른 글
[Python Algorithm] 탐색&시뮬레이션(2차원 리스트 탐색) - 격자판 최대합 (1) | 2023.03.14 |
---|---|
[Python Algorithm] 탐색&시뮬레이션(1차원 리스트 탐색) - 수들의 합 (1) | 2023.03.14 |
[Python Algorithm] 탐색&시뮬레이션(string) - 두 리스트 합치기 (1) | 2023.03.14 |
[Python Algorithm] 탐색&시뮬레이션(string) - 카드 역배치 (3) | 2023.03.13 |
[Python Algorithm] 탐색&시뮬레이션(string) - 회문 문자열 검사 (1) | 2023.03.13 |