문제
https://school.programmers.co.kr/learn/courses/30/lessons/120864
설계
- 숫자의 경우 연속된 숫자(32의 경우 3, 2를 각각 더하는 것이 아니라 묶어서 32)를 더해야한다.
- start와 end를 사용하여 answer에 더할 범위 지정
def solution(my_string):
answer, start, end = 0, 0, 1
for i in range(len(my_string) - 1):
if my_string[i].isdigit() and my_string[i + 1].isdigit():
end += 1
elif my_string[i].isdigit():
answer += int(my_string[start:end])
start, end = i + 1, i + 2 # 더한 후 다음 index를 가리킨다.
else:
start += 1 # 알파벳일 경우 index를 옆으로 이동한다.
end += 1
if my_string[start:end].isdigit(): # for문을 모두 순회하고 끝에 더하지 못한 숫자가 있다면 더해준다.
answer += int(my_string[start:end])
return answer
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] 타겟 넘버 - 파이썬 (1) | 2023.02.21 |
---|---|
[프로그래머스] 연속 부분 수열 합의 개수 - 파이썬 (0) | 2023.02.21 |
[프로그래머스] 안전지대 - 파이썬 (0) | 2023.01.30 |
[프로그래머스] 삼각형의 완성 조건 (2) - 파이썬 (0) | 2023.01.30 |
[프로그래머스] 외계어 사전 - 파이썬 (0) | 2023.01.30 |