Big Ben
Big Ben's Log
Big Ben
전체 방문자
오늘
어제
  • 전체 글 (80)
    • 파이썬 (23)
      • 파이썬 기초 (5)
      • 클래스 (6)
      • 자료구조 (4)
      • Tensorflow (3)
      • PyTorch (2)
      • konlpy (1)
      • anaconda (1)
    • 머신러닝 (3)
      • 선형회귀 (1)
      • Tree 기반 (1)
    • 딥러닝 (6)
      • NLP (2)
      • VISION (2)
      • TABULAR (0)
      • 딥러닝 서버 구축 (2)
    • 그래프 이론 (1)
      • 그래프마이닝 (1)
      • GNN (0)
    • 강화학습 (3)
      • 강화학습 기본 (3)
    • 인공지능 (5)
    • 추천시스템 (2)
      • 추천시스템 기초 (2)
    • Competitions (1)
    • 빅데이터 (8)
      • 하둡 (3)
      • 스파크 (4)
      • 클라우드 (1)
    • SQL (7)
      • MariaDB (2)
    • 논문 리뷰 (2)
    • 대학원 (0)
      • 데이터 사이언스 (0)
      • 경제학 (0)
    • 선형대수학 (7)
      • 선형대수 ICE BREAKING (1)
      • 벡터 (5)
      • 고윳값 (1)
    • 개인프로젝트 (0)
      • 포트폴리오 대시보드 + AI기반 주식 자동매매 (0)
    • 재테크 (1)
    • 자동차 (0)
    • 알고리즘 (11)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • pytorch
  • 파이썬기초
  • 선형대수
  • mysql
  • TensorFlow
  • 딥러닝
  • 데이터베이스
  • 데이터사이언스
  • 머신러닝
  • 프로그래밍
  • 자료구조
  • 선형대수학
  • 백준
  • 데이터
  • 파이썬
  • sql
  • 객체지향
  • Baekjoon
  • MariaDB
  • 코딩테스트
  • 하둡
  • 코테
  • AI
  • 알고리즘
  • 객체
  • class
  • 인공지능
  • PYTHON
  • 빅데이터
  • 프로그래머스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Big Ben

Big Ben's Log

알고리즘

[python] 등차수열과 등차수열의 합

2024. 3. 24. 12:56
반응형

알고리즘 및 코딩 테스트를 진행하다보면, 이따금 수학적 공식을 알고 있다면 생각보다 쉽게 풀리는 문제들이 있습니다.

 

수많은 공식들을 모두 외울 수도 없지만, 기본적인 내용은 짚고 넘어가면 도움이 될 수 있습니다.

 

그 중에서도 오늘은 등차수열에 관해 다뤄보려고 합니다.

 

등차수열의 기본 공식: n 번째 항 구하기

등차수열에서 n번째 항을 구하는 공식은 다음과 같습니다.

 

$$ a_n = a_1 + (n-1)d $$ 

 

여기서 각 기호는 다음을 의미합니다.

  • $a_n$: $n$번째 항
  • $a_1$: 첫번째 항 
  • $d$: 공차 
  • $n$: 항의 순서

이 공식은 등차수열의 어느 항이든지 첫 번째 항과 그 항의 순서를 통해 계산할 수 있게 해줍니다.

 

등차수열의 기본 공식은 주로 수열의 특정 항을 찾을 때 사용되는데, 간단한 예를 들어보겠습니다.

첫 번째 항이 2이고, 공차가 3인 등차수열에서 10번째 항을 찾고 싶다면, 위 공식을 활용하면 다음과 같이 됩니다.

$$ a_{10} = 2 + (10 - 1)3 = 29$$

 

파이썬으로 이 코드를 작성하는 것은 간단합니다.

def nth_term(a1, d, n):
	return a1 + (n-1) * d

 

등차수열의 기본 공식: 등차수열 합의 공식

등차수열의 합을 구하는 공식은 다음과 같습니다.

$$ S_n = \frac{n}{2}[2a_1 + (n-1)d] $$

 

여기서 $S_n$은 처음 n 개 항의 합을 나타냅니다.

 

마찬가지로 처음 10개 항의 합을 구하고 싶다면 해당 공식을 사용하여 계산할 수 있습니다.

 

def sum_arithmetic_seq(a1, d, n):
    total_sum = (n / 2) * ((2 * a1) + (n - 1) * d )
    return total_sum

 

이렇게 하면 for문을 사용하지 않더라도, 등차수열의 합을 빠르게 O(1) 수준의 시간 복잡도로 계산할 수 있습니다.

반응형
저작자표시 (새창열림)

'알고리즘' 카테고리의 다른 글

[백준 19532] 수학은 비대면 강의입니다 / Cramer's Rule / 브루트 포스  (1) 2024.03.26
[백준 24313] 점근적 표기 1 문제 풀이 & 해설 - 파이썬  (0) 2024.03.24
[백준 9506] 약수 합 - 파이썬  (0) 2024.03.18
[백준 11005] 진법 변환 2 - 파이썬  (0) 2024.03.18
[백준 2563번] 색종이 - 파이썬  (1) 2024.03.17
    '알고리즘' 카테고리의 다른 글
    • [백준 19532] 수학은 비대면 강의입니다 / Cramer's Rule / 브루트 포스
    • [백준 24313] 점근적 표기 1 문제 풀이 & 해설 - 파이썬
    • [백준 9506] 약수 합 - 파이썬
    • [백준 11005] 진법 변환 2 - 파이썬
    Big Ben
    Big Ben
    Data Scientist

    티스토리툴바