▶ 문제
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 함수 만들기.
ex) N = 123 이면 1 + 2 + 3 = 6 을 return 한다.
▶ 제한사항
N의 범위 : 100,000,000 이하의 자연수
▶ 풀이
def solution(n):
answer = 0 # 숫자변수, 초기값=0
for i in n: # n을 돌면서
answer += i # 하나씩 더하기
return answer
# TypeError: 'int' object is not iterable
ㅠ 오답,...
숫자형 'int' 객체는 반복할 수가 없다.
iterable을 여기서 보네!!! 수업중에 들었던거다.
각 자료형은 class로 지정되어 있는데 class 속성 중에 __iter__라는 매직 메서드가 들어가 있어야만 iterable 객체이며 for문을 통해 반복을 돌릴 수 있다.(기억 쥐어짜내기)
그럼 int 를 문자열로 바꿔줘야지
def solution(n):
str_n = str(n) # str()로 문자로 바꿔줌
answer = 0
for i in str_n: # 문자는 반복 가능
answer += i
return answer
# TypeError: unsupported operand type(s) for +=: 'int' and 'str'
또 오답...ㅠ,
숫자형 'int'와 문자열 'str'는 더할 수 없다.
아 answer가 0이니까 숫자인데 i는 문자로 변환된 상태니까 더할 수가 없다. 오키
그럼 다시 i를 숫자형으로 바꿔주면 되나
def solution(n):
str_n = str(n)
answer = 0
for i in str_n: # 문자로 반복 돌린 다음에
answer += int(i) # int()로 숫자로 바꿔서 더함
return answer
오예 맞았다!!!!!!!!!!
막 틀린 다음에 에러코드를 잘 읽어보기
'codekata' 카테고리의 다른 글
[프로그래머스] #15 나머지가 1이 되는 수 찾기 (MB, ms 성능확인) (0) | 2024.07.18 |
---|---|
[프로그래머스] #14 약수의 합 (MB, ms 성능확인) (0) | 2024.07.17 |
[프로그래머스] #12 평균 구하기 (0) | 2024.07.17 |
[프로그래머스] #11 짝수와 홀수 (if_bool) (0) | 2024.07.17 |
[프로그래머스] #10 배열의 평균값 (0) | 2024.07.16 |