티스토리 뷰

Python/Algorithm

백준 8393 : 합

채애 2021. 1. 21. 15:04

 Python3 

 

숫자의 ' 합 ' 을 생각하면 sum()함수 사용을 어떻게 할지 먼저 고민하게 된다.

일단 sum 함수를 사용하지 않고 풀어보자.

 

전체 코드 ( sum함수 사용 X ) :

N = int(input())

sum = 0
for i in range(1, N+1):		# 1부터 N(이하)까지
    sum += i
    
print(sum)

해당 코드는 백준 11720번과 조금 비슷한 듯 하다. 백준 11720번에서는 문자열을 받고 한자리의 수로 각각 나눠서 더하는 거지만.

비교해볼 문제 - 백준 11720번 : >> [Python/Algorithm] - 백준 11720 : 숫자의 합

 

 

그럼 sum()함수를 사용해서 푼다면?

 

전체 코드 ( sum함수 사용  ) :

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

두 줄로 바뀌었다. N을 입력받는 것까지는 같고, range() 함수를 이용해서 1부터 N(이하)까지 sum(iterator) 함수 ( : 인자로 들어온 모든 값 더하기 ) 를 이용했다.

 

 

다시 한번 sum 함수를 정리해보자면... ( 내가 자꾸 까먹는다 ㅠㅠ )

sum(iterable)

# 반환형 : 인자로 들어온 iterable 내부 모든 요소의 합
sum(iterable, start)

# 첫번째 인자 : iterable
# 두번째 인자 : 처음으로 또 더해줄 숫자
# 반환형 : 인자로 들어온 iterable 내부 모든 요소의 합 + start 값

까먹지말자... 기억하자...

 

 

 

sum 함수를 이용해서 한 줄로 문제를 풀 수도 있다. 더 짧게!

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

간단하다. 그냥 변수 N을 따로 선언하지 않고 곧바로 range()함수 안에 넣어주었다.

 

 

 

 

 

 

해당 문제 : https://www.acmicpc.net/problem/8393
 

8393번: 합

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

www.acmicpc.net

'Python > Algorithm' 카테고리의 다른 글

백준 2438 : 별 찍기(1)  (0) 2021.01.23
백준 10818 : 최소, 최대  (0) 2021.01.23
백준 1924 : 2007년  (0) 2021.01.21
백준 2739 : 구구단  (0) 2021.01.21
백준 2741,2742 : N 찍기, 기찍 N  (0) 2021.01.21
댓글