투포인터 2

[BOJ] 2473번 : 세 용액(투 포인터)

목차 접근 !! 이 문제를 풀기전에 조금 더 쉬운 버젼인 아래의 문제를 먼저 해결해보고 오는 것을 추천한다. [BOJ - 2467번: 용액] 위의 용액 문제 또한 투포인터로 해결할 수 있다. 정렬이 되어 있는 용액 리스트에서 두 용액을 합쳤을 때 특성값이 0에 가장 가까운 두 용액을 구하는 문제이다. 정렬 또한 되어있기 때문에, 그냥 투포인터로 0에 가장 가까운 방향으로 업데이트를 진행하면서 정답을 구하면 되는 문제이다. 그럼 이제 이 문제는 어떻게 해결할 것인가? 이번엔 세개의 용액을 합쳐서 특성값이 0에 가장 가까운 세 용액을 구하는 문제이다. 일단 위의 그냥 용액과는 다르게 전체 용액의 수 `N` 은 5,000 이하다. 쓰리포인터..? 뭐라고 말해야할지 모르겠지만, 하나는 고정해두고 나머지 두개에 ..

[BOJ] 2143번 : 두 배열의 합(구간 합, 투포인터)

접근 부 배열은 수열의 연속된 부분에 대한 합이다. 다른 두개의 수열 각각의 부 배열에 대한 합이 특정한 값과 같은 조합의 갯수를 세는 문제다. 두 수열에 대해 가능한 부 배열의 합을 모두 구하고, 투포인터를 이용해 각각의 합에 대해서 특정한 값과 맞는지 갯수를 세는 방식으로 문제를 해결했다. 해결 부 배열의 합을 구하기 위해서, 구간합을 먼저 구한 뒤 이중반복문으로 존재하는 모든 부 배열의 합을 구했다. 나는 부 배열의 합을 dict형식으로 저장해, '부 배열의 합'을 Key로, '갯수'를 Value로 사용하여 한번에 처리하도록 구성했다. 그리고 한 부 배열 조합은 부 배열의 합의 종류에 대해서 오름차순으로, 다른 부 배열 조합은 내림차순으로 정렬한 뒤에 투포인터를 이용해 각자의 인덱스로 접근하여 합의..