728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/120864
내 풀이
import re
def solution(my_string):
answer = 0
# 정규표현식 사용
m = re.compile('[0-9]+')
# 자연수만 담은 리스트 num_list
num_list = m.findall(my_string)
# num_list의 모든 원소의 합 계산
for i in num_list:
answer += int(i)
# sum(int(i) for i in num_list)
return answer
나는 정규표현식을 이용하여 문제를 풀었다.
정규표현식을 이용하여 자연수를 담은 배열을 뽑아내고,
그 배열의 모든 합을 더하는 방식으로 문제를 풀었다.
다른 사람 풀이
def solution(my_string):
s = ''.join(i if i.isdigit() else ' ' for i in my_string)
return sum(int(i) for i in s.split())
이 방식은 my_string의 원소를 순회하며, 숫자를 판별하는 함수 isdigit()를 사용해서 숫자만을 뽑아내고,
숫자라면 그 값을 새로운 문자열 s에 붙이고, 숫자가 아니라면 공백을 붙인다.
그 후, 새로운 문자열 s을 분리하여 그 합을 모두 계산한다.
728x90
'코딩테스트 > PYTHON' 카테고리의 다른 글
[프로그래머스][PYTHON] Lv. 0 외계어 사전 (0) | 2024.03.16 |
---|---|
[프로그래머스][PYTHON] Lv. 0 안전지대 (0) | 2024.03.15 |
[프로그래머스][PYTHON] Lv. 0 다항식 더하기 (0) | 2024.03.14 |
[프로그래머스][PYTHON] Lv. 0 최댓값 만들기 (2) (0) | 2024.03.13 |
[프로그래머스][PYTHON] Lv. 0 캐릭터의 좌표 (0) | 2024.03.12 |