티스토리 뷰

 

[Python] 백준 알고리즘 온라인 저지 8393번 : 합

 

Python3 코드

1) for문 코드

n = int(input())

total = 0  # 변수에 0을 지정
for i in range(1, n+1) :  # 1부터 n까지
    total += i  # total = total + i와 같은 의미
print(total)

2) sum함수 이용한 줄 코드

print(sum(range(1, int(input())+1)))

 

 

Python3 코드 풀이

 

1. 문제를 풀었던 전체적인 방법 요약

이 문제는 랜덤으로 어떤 수 n이 주어지면 1부터 n까지 숫자의 합을 출력하는 문제이다. 여러 개의 숫자를 더하는 계산은 sum함수를 이용하면 간편하지만 백준 온라인 저지 단계별 문제에서는 이 문제가 for문 카테고리 안에 들어가 있으므로 for문으로 코드를 작성해서 문제를 풀어보았다.

 

문제를 풀 때 for문은 1부터 입력받는 숫자까지 반복하도록 하고 실행할 문장은 1부터 n까지 각 숫자를 하나하나 더하는 계산식을 작성하였다. 상세한 내용은 아래에서 설명한다.

 

2. for문 코드 첫째줄

n = int(input())

먼저, 숫자 n을 입력받는다. input 함수로 입력받은 숫자는 문자열로 입력받기 때문에 int 함수를 이용해서 정수로 변환하고서 변수 n에 선언하였다.

 

3. 먼저 변수 선언한다.

total = 0  # 변수에 0을 지정

for문을 작성하기 이전에 먼저 변수에 0이라는 값을 가진 int 타입의 정수를 선언한다. 이 변수는 for문 안에서 1부터 n까지 수를 더한 값을 선언하는데 이용된다.  

 

4.for문 코드 첫째줄

for i in range(1, n+1) :  # 1부터 n까지

 

range 함수를 이용해서 1부터 n까지의 숫자 범위를 생성한다. range 함수의 괄호 안에 숫자 두 개를 입력하는 경우 (시작 값, 종료 값)을 의미한다. 이때, 시작 값은 해당 값을 숫자 범위 안에 포함하지만 종료 값은 포함하지 않고 종료 값 직전 정수까지만 숫자 범위에 포함된다. 그렇기 때문에 1부터 n까지의 숫자 범위를 생성하기 위해선 range(1, n+1)로 함수를 작성해야 한다.  

 

5.for문에서 반복될 문장을 작성한다.

    total += i  # total = total + i와 같은 의미

for문 안에서 반복될 문장은 들여 쓰기를 해서 작성한다.

이번 문제에서 반복되는 문장은 1부터 n까지의 숫자를 하나씩 꺼낸 변수 i를 위에서 변수 total에 더해주는 계산식이다. 코드 안의 주석에서 작성한 것처럼 (total += i)는 (total = total + i)와 동일하다. 즉, 반복문이 반복되는 동안 total과 i를 더한 값을 total 변수에 새롭게 선언하는 것이다.

 

6.print함수 사용법

for i in range(1, n+1) :  # 1부터 n까지
    total += i  # total = total + i와 같은 의미
print(total)

print 함수는 반복문이 모두 끝난 이후에 1부터 n까지 각 숫자를 더한 변수 total을 출력해야 하므로 for문을 벗어나도록 for문과 같은 줄에 작성한다. 


7.sum함수 코드 이용한 줄 작성

n = int(input)
print(sum(range(1, n+1)))

위에서 한 줄 코드에서 입력받는 수를 n = int(input)으로 빼내고 작성해볼 수도 있다. 보기에 편한 코드를 작성하는 것도 중요하다고 생각한다. sum 함수는 여러 개의 수를 더한 값을 출력하는 함수이다. sum함수 안에서 숫자로 이루어진 iterable 자료형을 생성하는 range함수를 이용해서 1부터 n까지의 숫자 범위를 지정해 보았다.

 

반응형
댓글
반응형