🔗 문제
https://school.programmers.co.kr/learn/courses/30/lessons/120864
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
my_string의 길이 ≤ 1,000 - 1 ≤
my_string안의 자연수 ≤ 1000 - 연속된 수는 하나의 숫자로 간주합니다.
- 000123과 같이 0이 선행하는 경우는 없습니다.
- 문자열에 자연수가 없는 경우 0을 return 해주세요.
입출력 예
| my_string | result |
| "aAb1B2cC34oOp" | 37 |
| "1a2b3c4d123Z" | 133 |
💻 Code
def solution(my_string):
total = 0 # 자연수 합 저장 변수
num = '' # 숫자 임시 저장 변수
for s in my_string:
if s.isdigit():
num += s
else: # 숫자가 아닌 경우
if num: # 저장된 숫자가 있으면 total에 더한다.
total += int(num)
num = '' # 초기화
if num: # 마지막 숫자가 있는 경우
total += int(num)
return total
my_string의 문자를 하나씩 꺼내서isdigit()메서드를 이용하여 숫자인지 검사한다.- 만약 숫자인 경우,
num에 추가 - 숫자가 아닌 경우, 지금까지 저장된 숫자의 합을
total에 더한 뒤 (새로운 숫자를 찾기 위해)num을 초기화해준다.
- 만약 숫자인 경우,
- for문 종료 후,
num에 저장된 숫자가 있는 경우total에 더해준다.

'Algorithm > 프로그래머스' 카테고리의 다른 글
| [Lv.0/Python] 세로 읽기 (0) | 2023.07.05 |
|---|---|
| [Lv.0/Python] 한 번만 등장한 문자 (0) | 2023.07.05 |
| [Lv.0/Python] 배열 만들기 3 (0) | 2023.07.02 |
| [Lv.0/Python] 접미사 배열 (0) | 2023.07.02 |
| [Lv.0/Python] 중복된 문제 제거 (0) | 2023.07.02 |
