안녕하세요. 이번 포스팅에서는 Py.CheckiO 의 Home 레벨에 있는 Sum numbers 문제풀이를 해보겠습니다.
주의:
제 답이 최고/최적화된 답이 아닐 수 있으며, 해결하는 것에만 집중한 답이기 때문에 좀 더 나은 방법이나 해석이 있으시다면 댓글 부탁드립니다.
0. Sum numbers 문제 내용
Sum numbers 문제의 내용은 주어진 문자열에서 숫자(정수)로 된 값들을 추출해서 모두 더한 값을 구하는 문제입니다.
처음에는 문자열에 어떤 형태로든 들어있는 정수를 모두 찾아내서 더하는 문제인줄 알았는데 풀어보니 예시에 제한이 있었네요
예시 2번을 보면 'who is 1st here' 의 문장안에서 '1st' 안에 있는 1은 계산하지 않는 것으로 보입니다.
문자열 안에 모든 정수가 아닌 단독으로 쓰여있는 (공백 등으로 띄어져 있는) 정수들만 구하는 것 같네요.
1. Sum numbers 문제 풀이
위에 말씀드린대로 단독으로 쓰여진 정수만 추출해내는 것이라면 오히려 더 간단해집니다.
split 함수를 통해서 공백으로 띄어진 것들을 구분해내고 그 안에서 정수만 찾으면 되기 때문입니다.
split 함수를 사용하여 주어진 문자열 text를 공백(space)로 구분하기
text_split = text.split(' ')
만약 text = ['who is 1st here'] 일 때,
text.split(' ') 의 값은 ['who', 'is', '1st', 'here'] 로 분리됩니다.
이렇게 분리된 문자열을 반복문으로 돌리면서 안에서 정수들만 골라냅니다.
isdigit() 함수는 '123', '456' 과 같이 숫자로 이뤄진 문자열이라도 안에 내용물이 문자가 아닌 숫자라는 것을 판별할 수 있습니다.
str들 중 isdigit()의 값이 1인 경우(정수인 경우)만 찾아서 sum에 더한 값을 return 하게 되면 문제 풀이가 끝이 납니다.
본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.
인용 시 출처와 같이 공개해주세요!
도움이 되셨다면 댓글 또는 공감 부탁드립니다!
댓글