SMALL
출처: 모두의 알고리즘
알고리즘을 공부하면서 [모두의 알고리즘]의 문제를 풀고, 그 성장과정을 기록하는 목적으로 작성되었습니다.
※ 예시문제 - 1부터 n까지 연속한 숫자의 합 구하기
● 해결 팁
계산한 결과를 게속 기억해서 입력 받은 값과 기존 값을 더함
1. 합을 기록할 변수 s를 만들고 0을 저장
2. 변수 i를 만들어 1부터 n까지의 숫자를 1씩 증가시키며 반복
3. [반복블록] 기존의 s에 i를 더하여 얻은 값을 다시 s에 저장
4. 반복이 끝났을 때 s에 저장된 값이 결과~!
● 정답 코드 - 1. 계산결과 기억하기
def sum_n(n):
s = 0
for i in range(1, n+1):
s = s+i
return s
● 정답 코드 - 2. 가우스의 방법
def sum_n(n):
return n*(n+1)//2
# //는 정수 나눗셈을 의미
※ 연습문제 - 1부터 n까지 연속한 숫자의 제곱합을 구하는 프로그램 만들기
● 정답 코드 - 1. 계산결과 기억하기
def sum_n(n):
s = 0
for i in range(1, n+1):
s = s+i*i
return s
● 정답 코드 - 2. 제곱합 공식 사용하기
def sum_n_square(n):
return(n*(n+1)*(2n+1)/6)
뭔가 프로그래머스의 두 정수 사이의 합 문제를 풀 때 사용하면 좋을 알고리즘이라 생각합니다.
가우스의 합 공식을 사용해서 풀었는데, [계산결과 기억하기] 방식을 적용해보면 좋겠네요.
LIST