맨들맨들 돌덩이
Home
  • 분류 전체보기 (439)
    • 프로젝트 (14)
    • NOTICE (2)
    • 개발 (206)
      • Unity (12)
      • JAVA (20)
      • SPRING (9)
      • DB (10)
      • FronT (14)
      • 알고리즘 (16)
      • 이코테 (25)
      • Python (60)
      • Arduino (4)
      • WEB (18)
      • C++ (17)
    • 게임 (33)
      • DNF (31)
      • LostArk (2)
    • KT_DS (93)
      • 보호관리용 (3)
    • 실습코드 (64)
      • 실습 코드 (63)
    • 독서 (2)
      • 생각넓히기 (2)
    • Setting (17)
    • 일상 (8)
ALL
  • 분류 전체보기 (439)
    • 프로젝트 (14)
    • NOTICE (2)
    • 개발 (206)
      • Unity (12)
      • JAVA (20)
      • SPRING (9)
      • DB (10)
      • FronT (14)
      • 알고리즘 (16)
      • 이코테 (25)
      • Python (60)
      • Arduino (4)
      • WEB (18)
      • C++ (17)
    • 게임 (33)
      • DNF (31)
      • LostArk (2)
    • KT_DS (93)
      • 보호관리용 (3)
    • 실습코드 (64)
      • 실습 코드 (63)
    • 독서 (2)
      • 생각넓히기 (2)
    • Setting (17)
    • 일상 (8)
블로그 내 검색

맨들맨들 돌덩이

티스토리 생일 : 2020.11.18. 모든 문의 : highcw@naver.com

  • 개발/이코테

    구간 합 알고리즘 동작 방법, 정의

    2022. 4. 22.

    by. KAEY

    이것이 코딩테스트다. 나동빈 신님의 강의를 바탕으로 작성하였습니다.


     구간 합 알고리즘

      구간 합 문제 : 연속적으로 나열된 n개의 수가 있을 때 '특정 구간의 모든 수를 합한 값을 계산'하는 문제
     예를 들어 5개의 데이터로 구성된 수열 {10,20,30,40,50}이 있다고 가정한다.
      - 두 번째 수부터 네번 째 수까지의 합은 20+30+40 = 90 임.

     


     구간 합 빠르게 계산하기.
      n개의 정수로 구성된 수열이 있다.
      m개의 쿼리 정보가 주어진다.
       - 각 쿼리는 Left와 Right로 구성된다.
       - 각 쿼리에 대해 [Left, Right] 구간에 포함된 데이터들의 합을 출력해야 함.
      수행 시간 제한은 O(N+M)이다.

     
     ▶문제 해결 아이디어
     접두사 합 : 배열의 맨 앞부터 특정 위치까지의 합을 미리 구해 놓음.
     접두사 합을 활용한 알고리즘은 다음과 같음.
      -N개의 수 위치 각각에 대해 접두사 합을 계산하여 P에 저장함.
      -매 M개의 쿼리 정보를 확인할 때 구간 합은 P[Right] - P{Left-1] 입니다.
     
        [10 , 20 , 30 , 40, 50]                  1) left = 1, right=3 => p[3]-p[0]= 60
            ↓prefix Sum                           2) left = 2, right=5 => p[5]-p[1]= 140
     [ 0 , 10 , 30 , 60 , 100 , 150]        M) left = 3, right=4 => p[4]-p[2]= 70
     p[0] p[1] p[2] p[3] p[4] p[5] 

     

    => 내가 생각한 이해하기,

    p[3] ~ p[5] = ( p[0] ~ [5] ) - ( p[0] ~ [2] ) 와 같다고 생각하면 편하다.

     


    저작자표시 비영리 동일조건 (새창열림)

    '개발 > 이코테' 카테고리의 다른 글

    서버와 클라이언트 개념, HTTP 정의  (0) 2022.04.22
    개발형 코딩 테스트 알아보기  (0) 2022.04.22
    투 포인터 알고리즘 정의, 동작 방법  (0) 2022.04.22
    에라토스테네스의 체 알고리즘 정의, 동작 방법, 성능 분석  (0) 2022.04.22
    소수 판별 알고리즘의 정의 및 원리  (0) 2022.04.22

    댓글 (비로그인 댓글 허용하지 않습니다.)

    관련글

    • 서버와 클라이언트 개념, HTTP 정의 2022.04.22
    • 개발형 코딩 테스트 알아보기 2022.04.22
    • 투 포인터 알고리즘 정의, 동작 방법 2022.04.22
    • 에라토스테네스의 체 알고리즘 정의, 동작 방법, 성능 분석 2022.04.22
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
KAEY
#모바일 접속 차단. (PC 환경 자동 리다이렉트) #현재 블로그내 모든 광고는 티스토리(카카오)에서 게시한 광고입니다😢. #문의 이메일 : highcw@naver.com

티스토리툴바