PS (Problem Solving)/Programmers
[프로그래머스] 숨어있는 숫자의 덧셈 (2) - 파이썬
캐럿노트
2023. 1. 30. 20:03
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120864
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
설계
- 숫자의 경우 연속된 숫자(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