1에서 100까지의 매직 넘버를 추가한 결과는,
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100
이 문제를 해결하기 위해 다음 접근 방식을 따릅니다 -
해결책 1
-
목록 ls에 1~100개의 값을 추가하는 목록 이해를 만듭니다.
ls = [i for i in range(1,101)]
-
람다 필터 함수를 적용하여 9로 나눌 수 있는 값을 저장하면 결과는 1입니다.
l = list(filter(lambda i:i%9==1,ls))
-
목록에서 시리즈 만들기 l.
pd.Series(l)
예시
이해를 돕기 위해 아래 코드를 살펴보겠습니다.
import pandas as pd ls = [i for i in range(1,101)] l = list(filter(lambda i:i%9==1,ls)) print("magic number series:\n",pd.Series(l))
출력
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100
해결책 2
-
빈 목록 만들기
-
루프 범위를 1에서 101로 설정하고 digit_sum을 0으로 설정
for i in range(1,101): digit_sum = 0
-
i 값이 변경되지 않도록 임시 값에 i 값을 할당합니다.
-
while 루프 조건을 temp> 0
으로 설정 -
다음과 같이 나머지와 digit_sum을 계산합니다.
while(temp>0): rem = temp % 10 digit_sum = digit_sum + rem temp = temp // 10
-
마지막으로 if 조건을 설정하여 digit_sum 값을 1 또는 10으로 확인합니다. true이면 목록에 값을 추가합니다.
if(digit_sum==1 or digit_sum==10): l.append(i)
-
마지막으로 목록에서 시리즈를 생성합니다.
예시
더 나은 이해를 위해 다음 코드를 확인합시다 -
import pandas as pd l = [] for i in range(1,101): digit_sum = 0 temp = i while(temp>0): rem = temp % 10 digit_sum = digit_sum + rem temp = temp // 10 if(digit_sum==1 or digit_sum==10): l.append(i) print("magic number series:\n",pd.Series(l))
출력
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100