숨어있는 숫자의 덧셈 (1)

2024. 8. 11. 18:00코딩테스트 입문

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.

입출력 예

my_string result
"aAb1B2cC34oOp" 10
"1a2b3c4d123" 16

입출력 예 설명
입출력 예 #1

  • "aAb1B2cC34oOp"안의 한자리 자연수는 1, 2, 3, 4 입니다. 따라서 1 + 2 + 3 + 4 = 10을 return합니다.

입출력 예 #2

  • "1a2b3c4d123Z"안의 한자리 자연수는 1, 2, 3, 4, 1, 2, 3 입니다. 따라서 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16을 return합니다.

유의사항

  • 연속된 숫자도 각각 한 자리 숫자로 취급합니다.

숨겨진 숫자들을 전부 찾아내서 더하는 문제입니다.

이전에도 비슷한 문제를 isdigit() 함수를 사용해서 푼 적이 있죠? 리스트 컴프리헨션과 합쳐서 같이 문제를 풀 수 있습니다.

연속된 숫자도 각각 한 자리 숫자로 취급하기 때문에 두 자리 숫자인지 고민할 필요도 없겠네요.

 

파이썬으로 풀어보겠습니다.

def solution(my_string):
    # my_string에서 num 추출
    # num이 숫자인지 확인
    # int 형변환 후 sum 적용
    return sum(int(num) for num in my_string if num.isdigit())

이런 문제들에서 조금 더 비틀면 연속된 숫자들은 하나의 숫자로 처리하는 문제로 바꿀 수도 있습니다.

isdigit()말고도 이런 유형을 어떻게 처리할지 생각해보는 것도 좋겠네요.

'코딩테스트 입문' 카테고리의 다른 글

컨트롤 제트  (0) 2024.08.13
소인수분해  (0) 2024.08.12
문자열 정렬하기 (1)  (0) 2024.08.10
모음 제거  (0) 2024.08.09
팩토리얼  (0) 2024.08.08