백준 알고리즘 8393번
Q. 백준 8393. 합
자연수 N을 사용자로부터 입력받은 후, 1부터 N까지의 총 합을 계산하는 프로그램을 작성한다.
(1) 입력 : 첫째 줄에 자연수 N (1 ≤ n ≤ 10,000)을 사용자로부터 입력받는다.
(2) 출력 : 1부터 N까지의 총합을 계산하여 출력한다.
A. 풀이
- 이번 알고리즘 문제는 짧고 이해하기 어렵지 않았으며, 풀이도 간단했다.
# Q 백준 8393. 합
num = int(input())
sum = 0
for i in range(num+1):
sum += i
print(sum)
1) 변수 선언부
- 먼저 사용자로부터 자연수 N의 값을 입력받기 위해 'input()'을 사용한다.
- 항상 입력받아 사용하는 값은 이후에 어떻게 사용될지 생각해야 한다.
- input()은 기본적으로 문자열 형식으로 값을 입력받는다. 정수 N으로써의 역할을 하려면 정수형태로 포맷을 변경해주어야 하기 때문에 int(정수, integer)속성을 할당하기 위해 'int()' 함수를 사용했다.
- 입력받아 정수로 변환한 수를 계산에 사용하기 위해 num이라는 변수에 할당한다.
- 우리가 구해야 하는 최종 값은 '총 합' 이다. 계산을 완료한 총 합을 출력하기 위해 sum이라는 변수를 생성하였고, 초기값은 0으로 만든다. (*이후 for문을 통해 계산한 값을 더하기 때문)
2) 반복문(for문)
- 1부터 num까지의 숫자를 더하기 위해 for문을 사용한다. for문에서는 i가 0부터 range(x)의 x-1까지 증가하며 명령을 반복한다. 우리가 구해야 하는 총합은 1부터 num까지 더한 총합이기 때문에 range(num)이 아니라 range(num+1)로 지정한다.
- 반복문 안의 내용은 sum에 i의 값을 하나씩 더하고, i를 증가하며 반복하는 것이기 때문에 sum = sum + 1이다.
- 위의 식처럼 사용해도 되지만, 파이썬에서는 식을 간소화하기 위해서 sum += 1으로 주로 표현한다.
3) 출력
- 계산한 값을 최종적으로 사용자에게 출력하기 위해서 'print()'문을 사용하였고, 계산한 총합의 값은 sum이라는 변수에 있기 때문에 print(sum)으로 문장을 마무리한다.
R. 리뷰
- 간단한 풀이지만, 각각의 의미를 명확히 이해하고 다른 풀이 방법은 없는지? 이 방법이 최적인지는 더 공부하면서 되돌아보는 것이 좋을 것 같다.
- 간단한 식이라도 하나하나 되짚어 기록하면서 안다고 생각해도 '정말 내가 알고 있는지' 나의 언어로 작성하면서 검토할 수 있다.
- 이번 문제에서는 for문에서 range() 범위를 지정할 때 num이 아닌 num+1로 지정하는 것이 포인트이다. 쉽게 실수할 수 있는 부분이라고 생각한다.
'DEV > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 10171번, 25083번(파이썬) (0) | 2022.09.15 |
---|---|
백준 알고리즘 2438번, 2439번(파이썬) (0) | 2022.09.14 |
백준 알고리즘 2480번(파이썬) (5) | 2022.09.12 |
백준 알고리즘(파이썬) :: 백준 코딩 문제 14681번 (6) | 2022.09.11 |
백준 알고리즘(파이썬) :: 백준 코딩 문제 1330번 (0) | 2022.09.10 |
댓글