티스토리 뷰

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

 

Chatper 2. 기초 알고리즘

10강. 투 포인터 알고리즘 소개

11강. 투 포인터 사용 예제 1

 

 

시작시각, 끝 시각

 

 

 

 

 

Two-Pointer Algorithm 정의

- Two-Point Algorithm(투 포인터 알고리즘) : 1차원 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해가면서 원하는 값을 찾을 때 까지 탐색하는 알고리즘이다.

- 리스트에 순차적으로 접근해야 할 때 두 개의 점(포인트)의 위치를 기록하면서 처리한다.

[Algorithm] Two-Pointers Algorithm (투 포인터 알고리즘)
 

[Algorithm] Two-Pointers Algorithm (투 포인터 알고리즘)

Two-Point Algorithm(투 포인터 알고리즘) : 1차원 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해가면서 원하는 값을 찾을 때 까지 탐색하는 알고리즘이다.리스트에 순차적으로 접

velog.io

 

 

이전 완전탐색 알고리즘보다 훨씬 빠르게 탐색할 수 있다.

 

 

 

문제 2003번: 수들의 합 2

이제 문제 풀이 영상도 30분이네.. 길다...

 

풀이

못 풀었다. 아니 개념 설명할 때는 main을 0 인덱스로 sub를 arr의 가장 마지막 인덱스로 두셔서, 나도 문제 풀이 때 그렇게 적용했는데. 지금 문제 푸실 때 보니까 갑자기 start랑 end 둘다 0으로 설정하셨다;; 으잉?....

다른 블로그 포스팅을 보니 전부 0으로 잡고 시작한다. 그럼 왜 강의 개념 설명에서는 end를 0으로 안 잡고 배열 제일 마지막에 잡은 건지? ...

 

강사 풀이

N, M = map(int, input().split())
A = list(map(int, input().split()))

start = 0
end = 0
sum = A[0]

count = 0
while True:
    # 현재 구간합이 M인지 확인
    if sum == M:
        count += 1

    # 구간 업데이트
    if sum >= M:
        start += 1
        sum -= A[start -1]
    else: # sum < M
        if end == N -1:
            break

        end += 1
        sum += A[end]
        
print(count)

 

 

 

강의 목록

 

 

 

https://abit.ly/lisbva

#패스트캠퍼스 #환급챌린지 #패스트캠퍼스후기 #습관형성 #직장인자기계발 #오공완

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함