ARC061 C - 많은 수식을 파이썬으로 구현
목적
AtCoder 버전! 개미모토(초급편)에서 「많은 수식」으로 망설였으므로 이해한 것을 비망록으로 남긴다.
 문제
1 이상 9 이하의 숫자만으로 구성된 문자열 S가 주어집니다. 이 문자열 내에서이 문자와 문자 사이에 여러 위치에 +를 넣을 수 있습니다. 하나도 넣지 않아도 괜찮습니다. 그러나 +는 연속해서는 안됩니다.
이 방법으로 가능한 모든 문자열을 수식으로 간주하고 합계를 계산할 수 있습니다.
가능한 모든 수식의 값을 계산하고 그 합계를 출력하십시오.
s = input()
n = len(s)
def dfs(i, f):
    if i == (n - 1):
        return sum(list(map(int, f.split("+"))))
    return dfs(i + 1, f + s[i + 1]) + dfs(i + 1, f + "+" + s[i + 1])
print(dfs(0, s[0]))
 구현 내용
dfs(0, s[0]) 를 호출했을 때의 모습을 보여줍니다. s = "125"이므로 그림에서는 s[0]을 문자열의 "1"로 나타냅니다. 마찬가지로 s[1]을 문자열의 "2"로, s[2]를 문자열의 "5"로 나타냅니다. 재귀 적으로 dfs를 호출하여 합계를 얻고 있음을 알 수 있습니다.
 
 참조
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(ARC061 C - 많은 수식을 파이썬으로 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/momo10/items/aee8ae166d54a453b86a
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
s = input()
n = len(s)
def dfs(i, f):
    if i == (n - 1):
        return sum(list(map(int, f.split("+"))))
    return dfs(i + 1, f + s[i + 1]) + dfs(i + 1, f + "+" + s[i + 1])
print(dfs(0, s[0]))
Reference
이 문제에 관하여(ARC061 C - 많은 수식을 파이썬으로 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/momo10/items/aee8ae166d54a453b86a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)