본문 바로가기
모두의 알고리즘 with 파이썬

[문제 1] 1부터 n까지의 합 구하기

by Keep It Simple, Stupid! 2020. 2. 1.

 

과제 : 1부터 n까지 연속한 정수의 합을 구하는 알고리즘을 만들기

 

1. 알고리즘의 중요 포인트


  • 문제 : '1부터 n까지 연속한 숫자 합'
  • 입력 : 'n까지'에 해당하는 n (n만 입력하면 1부터 n까지 연속한 숫자 합을 한번에 구함)
  • 출력 : '1'부터 입력 'n'까지의 합

 

 

2. 구체적이고 명료한 계산 과정


1부터 10까지의 합을 예를 들어보자.

  1. 1더하기 2를 계산한 결과인 3을 머릿속에 기억
  2. 기억해 둔 3에 다음 숫자 3을 더해 6을 기억
  3. 기억해 둔 6에 다음 숫자 4를 더해 10을 기억
  4. 기억해 둔 10에 다음 숫자 5를 더해 15를 기억
  5. 같은 과정 반복...
  6. 기억해 둔 45에 다음 숫자인 10을 더해 55를 기억
  7. 10까지 다 더했으므로 마지막에 기억된 55를 제시

 

그림 1-1 1부터 10까지의 합을 구하는 과정 (사람 생각)

 

 

3. 1부터 n까지의 합을 구하는 알고리즘


 이제 1부터 n까지의 합을 구하는 문제를 푸는 알고리즘을 적어 보고, 이 알고리즘을 다음어 파이썬 프로그램으로 만들어 보자.

그림 1-2 1부터 n까지의 합을 구하는 알고리즘의 구조

 

 1부터 n까지 연속한 숫자의 합을 구하는 문제를 풀기 위한 알고리즘을 최대한 구체적으로 적으면 아래와 같다.

  1. 합을 기록할 변수 s를 만들고 0을 저장
  2. 변수 i를 만들어 1부터 n까지의 숫자를 1씩 증가시키며 반복
  3. [반복 블록] 기존의 s에 i를 더하여 얻은 값을 다시 s에 저장
  4. 반복이 끝났을 때 s에 저장된 값이 결과이다.

 알고리즘을 하나의 함수로 만들어 입력은 인자로 전달하고, 출력은 함수의 결과값(return)으로 만들면, 알고리즘이 "입력 → 알고리즘 출력"을 수행하는 과정이라는 것을 더 직관적으로 이해할 수 있다.

 

4. 알고리즘 분석


 

 

5. 입력 크기와 계산 횟수


6. 대문자 O 표기법 : 계산 복잡도 표현


 

 

 

'모두의 알고리즘 with 파이썬' 카테고리의 다른 글

05. 최대공약수 구하기  (0) 2020.03.06

댓글