Recent Posts
Recent Comments
Link
- Today
- Yesterday
- Total
메이쁘
(JAVA) 백준 3273번 : 두 수의 합 --- [투포인터] 본문
안녕하세요.
기본적인 투 포인터 문제 입니다.
처음에는 어? 뭐야! 그냥 for문 2개 돌려서 풀면 되겠네! 했다가 시간 초과를 당해서
뒤늦게 투포인터를 사용했습니다.
유의사항은
- x의 값은 모든 수를 입력받은 다음 알 수 있습니다. => 모든 수를 별도로 저장해둔 다음, 파악해야 합니다.
- 정확히 두 개의 수를 더해야 합니다. 1개의 수만 가지고 개수를 얻을 수 없습니다.
매커니즘
풀이 매커니즘은 별 거 없습니다.
1) 입력값 받아 별도 int 배열에 저장하고
2) 해당 배열을 오름차순 정렬한 후 (오름차순 정렬하지 않아도 될 것 같습니다..)
3) 시작점 = 0, 끝점 = n - 1 에서 각각 시작해서 교차하기 전까지(같아도 종료. 이유는 1개의 수 가지고 판단할 수 없기 때문에) 시작점과 끝점의 원소를 더합니다.
4) 같다 -> 카운트 ++
5)
- 4) 를 거치고 난 이후, 두 원소의 합이 x와 같거나 x보다 더 크다 -> 시작점 한 칸 오른쪽으로 이동(시작점++)
- 두 원소의 합이 x보다 작다 -> 끝 점 한 칸 왼쪽으로 이동(끝점--)
6) 개수 출력!
이상입니다.
감사합니다.
소스코드
'Algorithm > Baekjoon' 카테고리의 다른 글
(JAVA) 백준 11722번 : 가장 긴 감소하는 부분수열 --- [LIS, 이분탐색] (0) | 2020.09.19 |
---|---|
(JAVA) 백준 12015번 : 가장 긴 증가하는 부분 수열 2 --- [이분탐색, DP, LIS] (0) | 2020.09.19 |
(JAVA) 백준 9205번 : 맥주 마시면서 걸어가기 --- [BFS] (0) | 2020.09.19 |
(JAVA) 백준 4358번 : 생태학 --- [문자열] (0) | 2020.09.19 |
(JAVA) 백준 2224번 : 명제 증명 --- [플로이드 - 와샬] (0) | 2020.09.17 |
Comments