[파이썬 코딩테스트 lv0] 숨어있는 숫자의 덧셈(2)

seoyeon·2023년 4월 18일
0

코딩테스트 python

목록 보기
9/11
post-thumbnail

문제설명

문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

제안사항

1 ≤ my_string의 길이 ≤ 1,000
1 ≤ my_string 안의 자연수 ≤ 1000
연속된 수는 하나의 숫자로 간주합니다.
000123과 같이 0이 선행하는 경우는 없습니다.
문자열에 자연수가 없는 경우 0을 return 해주세요.

입출력 예

풀이

1. isdigit()함수 활용하여 join하기

def solution(my_string):
    s = ''.join(s if s.isdigit() else ' ' for s in my_string )
    return sum(int(n) for n in s.split())
  • isdigit() => 숫자이면 1을 리턴 숫자가 아니면 0을 리턴
  • my_string 값 중 숫자가 아니면 공백형태로 나눠서 문자열 s에 저장
  • .split() => 엔터 혹은 띄어쓰기로 구분하여 리스트로 저장
  • s값을 띄어쓰기로 구분하여 리스트에 저장한 후, 각 값을 int로 변경하고 더한 값을 리턴

2. isalpha()와 replac() 활용하기

def solution(my_string):
    for s in my_string:
        if(s.isalpha()):
#             알파벳이 있는 곳은 공백으로 구분시켜주기
            my_string = my_string.replace(s,' ')
    return sum (int(i) for i in my_string.split())
  • isalpha() => 알파벳이면 1리턴, 아니면 0리턴
    *문자열.replace(s, 구분자) => 문자열안의 s를 구분자로 구분하여 리턴

  • 알파벳이 있는 곳은 공백으로 구분하여 my_string에 저장

  • my_string을 공백으로 구분하여 리스트에 저장하고, 값을 int로 계산하고 더한값을 리턴

profile
항상 질문하는 개발자가 되고 싶습니다✋

0개의 댓글