본문 바로가기
study/CodingTest

파이썬 반복문 누적합계

by 고기만두(개발자) 2023. 3. 20. 12:01
728x90
반응형

빅데이터 교육 듣다가 오랜만에 알고리즘 비슷한 문제 풀어서 머리에 쥐 남.

한동안 뜸했는데 자주 풀어야지,,

 

  • 다음과 같은 규칙을 가진 숫자의 합을 for문을 사용해서 구현하세요.
  • 1부터 19까지 누적 합계를 구합니다.

(예시)   
1 + (1 + 3) + (1 + 3 + 5) + (1 + 3 + 5 + 7) + ... + (1 + 3 + ... + 19)

 

1+
1+3+
1+3+5+
1+3+5+7+
1+3+5+7+9+
1+3+5+7+9+11+
1+3+5+7+9+11+13+
1+3+5+7+9+11+13+15+
1+3+5+7+9+11+13+15+17+
1+3+5+7+9+11+13+15+17+19+
합계:  385

 

1*10 + 3*9 + ... + 19*1 이니까 계산은 금방 할 수 있다고 생각했는데

반복 출력때문에 어렵게 느껴짐. 반복 출력은 저렇게 할 수 없으니까

1행 : 1

2행 : 1 + 3 

3행 : 1 + 3 + 5

..

1부터 20까지 2 간격으로 건너뛰면 1, 3, 5, ... , 19 꼴이 되어 겉 a 루프를 range (1, 20, 2)

반응형

속 b 루프는 1부터 a까지 나올 수 있도록 2칸 간격으로 range (1, a+1, 2)

그리고 b를 누적시킬 total 변수가 필요.

total = 0
for a in range (1,20,2):
    line = ''
    for b in range(1, a+1, 2):
        line += f'{b}+'
        total += b
    print(line)
print(f'합계: {total}')

 

점화식 전개를 생각하다 혼자 이상한 데 꽂혀서 조건 생각 안 하고 한참 애먹은 문제.

728x90
반응형

댓글