[프로그래머스][파이썬] 숨어있는 숫자의 덧셈 (2) - 문자열 (Level 0)

뻥튀기아이스크림·2025년 3월 24일
1
post-thumbnail

◽ 문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120864

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(my_string):
    
    for i in my_string:
        if i.isalpha():
            my_string = my_string.replace(i, ' ')
            
    my_string = my_string.split()
    
    return sum(list(map(int, my_string)))
  • 그냥 한 자리 수 자연수만 있다면 너무 쉬운 문제였겠지만, 그렇지 않으니 분리를 잘해주어야 한다.
  • isalpha() 함수를 통해 대소문자 가리지 않고 알파벳을 체크하여 공백 문자로 치환했다.
  • 그리고 공백을 기준으로 나누면 숫자가 올바르게 담길 수 있고, 공백으로 잘 나누어 my_string 에 담았지만, 합을 구하려면 문자열을 정수로 변환해야한다.
  • for 문을 사용하지 않으려 리스트에 담아 합을 구했다.

◽ 다른 사람 풀이

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())
  • join() 안에 리스트 컴프리헨션을 적절히 활용해 자연수를 추출했다.
  • 공백을 기준으로 나누어 합을 구했다.

◽ 더 나아가기

  • 리스트 컴프리헨션을 잘 활용할 수 있다면 가독성 높은 코드를 만들수 있다.
  • 컴프리헨션 구문 안에 if 만 사용하려는 생각보단 else 도 당연히 쓸 수 있다는 생각을 해보자.



피드백은 언제나 환영입니다 :)

profile
성장하고 싶은 개발자

0개의 댓글