DevBoi

[Two pointer] 백준 2003번 본문

Algorithm/[Two pointer]

[Two pointer] 백준 2003번

HiSmith 2021. 12. 9. 16:56
반응형

https://www.acmicpc.net/problem/2003

 

2003번: 수들의 합 2

첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.

www.acmicpc.net

 

간단한 투포인터 문제이다.

정렬은 할필요없고, start, end 가 00부터 시작해서, sum과 타겟을 비교하면서 이동시키면된다.

다만 마지막 인덱스에 대해서는 조금 고민을해볼필요가 있다.

왜냐면 end가 index range를 벗어나게 되면 오류가 발생하기때문이지만

end가 마지막 지점에 있고 start를 줄여나가면서 탐색을 해야될 수도 있기 때문에,

end 가 마지막에 걸리고 , 만약에 end를 추가시켜주는 조건에서 break;를  걸면된다.

사실 while조건은 ture여도 된다.

반응형

'Algorithm > [Two pointer]' 카테고리의 다른 글

[Two pointer] 백준 16472  (0) 2021.12.12
[Two pointer] 백준 1806  (0) 2021.12.09
[Two pointer] 2230백준 문제 풀이  (0) 2021.12.07
[Two pointer] 3273번 문제풀이  (0) 2021.12.07
[Two pointer] 백준 2559번  (0) 2021.12.07