입력받은 숫자나 값을 리스트로 분할하려면 어떻게해야할까요?

조회수 12150회

5개의 값을 입력받아 더한 값 1+2+3+4+5 = 15 <- 이 값을 리스트로 [1,5] 이렇게 만들고 싶은데 list함수를 사용하니 문자값만 들어갈수있는건지...?? 아니면 값이 하나여서 인지 ?? 아무튼 str로 변경해서 넣은후 map함수로 변경해서 하면 되기는 하는데 이게 반복문 안 에서 사용하니 에러가 납니다 리스트로 분리한 값을 계속 더하기로 사용해야하는데 ...이걸 한번에 나눌수 있는 방법이 있을까요?

arr = []
result = 1
num = int(input("반복 숫자 입력"))
for i in range(num):
    num2 = int(input("숫자 입력"))
    arr.append(num2)
    print(arr)

for j in arr:
    result += j
    result = list(str(result))
    result = list(map(int, result))
print(result)

2 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    질문자체가 완전히 이해되지는 않습니다. 특히 반복문안에서 해야 된다는 것이 이해가 안되는군요.

    >>> list(map(int, list(str(15))))
    [1, 5]
    
    • 음.. 반복숫자 입력 수만큼 숫자 입력을 받아 더한후 더한 값을 분할 하여 더하는 걸 만들고 있습니다. 예로) 10 입력 1+2+3+4+5+6+7+8+9+10 = 55 -> 5+5 = 10 -> 1+0 = 1 이렇게 만드려고 하는데 더한 값들을 리스트로 하나씩 나눠 만들려고합니다. 다크매터 2017.11.28 13:56
  • 규칙을 잘 모르겠습니다.

    만약 1부터 15까지 합이면 120인데 1 2 0 이면 3 입니다.

    def sum_of_item(number):
        L = list(map(int, list(str(number))))
        print(L)
        sum_L = sum(L)
        print(sum_L)
        if sum_L >= 10:
            sum_of_item(sum_L)
    
    sum_L = sum(range(1, 11))
    print(sum_L)
    sum_of_item(sum_L)
    
    55
    [5, 5]
    10
    [1, 0]
    1
    
    range가 1, 16이면
    120
    [1, 2, 0]
    3
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)