수들의 합2 문제는 투포인터 알고리즘을 이용하여 해결할 수 있다.
s(start), e(end) 인덱스를 이용하여,
start 로 배열을 증가하면서 sum을 증가시켜 M값과 동일하면 count를 증가하고
end를 증가하면서 sum 을 빼서 동일한 값이 있는지 확인한다.
배열 = {1 2 3 4 2 5 3 1 1 2}
일때 start, end는 처음에 0번 인덱스 입니다.
start를 증가하면서 1 + 2 + 3을 순서대로 해주면 sum은 6이 되어 M을 넘어서게 됩니다.
이때 end를 증가하면서 sum을 빼주면
start가 2번 인덱스이고, end가 0번 인덱스인 시점에 합은 5가 됩니다.
이때 count를 1더해주면 됩니다.
이를 끝까지 반복해주면 됩니다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준][그리디] 1931 회의실 배정 (0) | 2018.09.18 |
---|---|
[백준][그리디] 1049 기타줄 (0) | 2018.09.12 |
[백준][다이나믹] 2193 이친수 (0) | 2018.06.19 |
[백준][스택] 10828 스택 (0) | 2018.06.19 |
[백준] 2606 바이러스(유니온 파인드) (0) | 2018.04.20 |