문제 풀이 논리.
문자열을 for문을 통해 모두 검사하며, 숫자형으로 변환가능한 문자열이 발견되면 임시리스트에 문자열 형태로 append, 만약 그 다음 문자가 숫자형으로 변환 가능한 경우라면 다시 문자열 형태로 append 이렇게 숫자형으로 변환 불가능한 문자열이 등장할 때까지 반복, 만약 변환 불가능한 문자열이 등장한다면, count에 문자열을 ''join()을 통해 합쳐서 int형으로 바꾸어 count에 누적시키는 방식,
def check(i):
try:
can_int = int(i)
return True
except:
return False
# 숫자형으로 바꿀 수 있는지 아닌지 확인하는 함수 자체 제작
def solution(my_string):
list_tmp = [] # 임시리스트
count = 0 # 카운트(return할 것)
for i in my_string:
if check(i): #숫자형으로 변환 가능한 문자라면 임시리스트에 추가
list_tmp.append(i)
else: # 숫자형 변환 불가능할 경우 임시리스트에 숫자들이
#있다면 합쳐서 카운트에 누적시킴, 임시리스트가 비었다면 그냥 패쓰
#카운트에 누적시켰다면 임시리스트 초기화
if len(list_tmp) >= 1:
count += int(''.join(list_tmp))
list_tmp.clear()
else:
pass
#for문이 모두 끝나고 else문에서만 누적기능이 있으므로
# 임시리스트에 숫자데이터가 남을 경우 처리
if list_tmp:
count += int(''.join(list_tmp))
return count
알고갈 메서드
리스트.clear() : 리스트 아예 비우기.
'n'.join(list) : 리스트 안의 문자열 n구분자 기준으로 합침.