본문 바로가기
DEV/백준 알고리즘

백준 알고리즘 8393번(파이썬)

by 올커 2022. 9. 13.

 

 

백준 알고리즘 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로 지정하는 것이 포인트이다. 쉽게 실수할 수 있는 부분이라고 생각한다.

반응형

댓글