위와 같이 1+....+n까지의 합을 구하도록 의미한다.
과거 고등학교 수학에서 배웠듯이 n*(n+1)/2로 나타낼 수 있다.
풀이 과정
우선 최근 공부하고 있던 for문에 대해 활용하고자 하였다.
z=int(input())
n=range(1,z+1)
b=0
for a in n:
b+=a
if a==z:
print(b)
z=int(input()) # 기본 입력 인자를 받음. 숫자 입력 시 int type으로 출력 됨.
n=range(1,z+1) # for문에서 쓰일 예정. range에서 max값(2번째 index)은 -1이 되니, +1을 해준다.
b=0 # 최종으로 더해 나갈 변수를 명명 해 준다.
for a in n: # for문으로 구성하면 range 내에서 1부터 z까지 추출된다.
b+=a # 복합입력연산자로, b라는 변수에 a가 변하면서 계속해서 더해진다.
if a==z: # 마지막으로 a가 z (range에서 마지막 출력 숫자)에 도달하면 print한다.
print(b)
오답 노트
아래와 같이 a+=a로 구성하는 경우, a의 n-1항에서 a를 더해 a의 n항으로 가는 컨셉으로 이해하고 잘 못 작성하였다.
이 경우 예를 들어 n이 결과적으로 2인 경우, n=1: a=0+1, n=2: a=1+1과 같이 진행되기 때문이다. 따라서 별개의 변수를 지정하여 a_n = a_n-1+b_n-1로 맞춰주는 것이 간편하다.
z=int(input())
a=0
n=range(1,z+1)
for a in n:
a+=a
if a==z:
print(b)
'파이썬 > 파이썬 알고리즘' 카테고리의 다른 글
파이썬 백준 2828번 사과 담기 게임 (0) | 2021.02.23 |
---|---|
파이썬 백준 13301번 수학 합 (0) | 2021.02.20 |
파이썬 백준 2742번 제문 는하력출 지까N 터부1 (0) | 2021.02.12 |
파이썬 백준 2438번 별 찍기 - 1 (0) | 2021.02.12 |
파이썬 백준 2439번 별 찍기 - 2 (0) | 2021.02.12 |
댓글