
-Code
class Solution {
public int maxOperations(int[] nums, int k) {
int answer = 0;
// 투포인터 하기 위해 정렬
Arrays.sort(nums);
// 왼쪽 오른쪽 커서 셋팅
int left = 0, right = nums.length - 1;
// 왼쪽이 오른쪽 보다 작은 경우 반복
while (left < right) {
if (nums[left] + nums[right] == k) {
// 합이 k인 경우 answer++, 왼쪽 오른쪽 중앙으로 이동
answer++;
left++;
right--;
} else if (nums[left] + nums[right] > k) {
// k 보다 큰 경우 right--
right--;
} else {
// k 보다 작은 경우 left++
left++;
}
}
return answer;
}
}'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 20733번 Triple Texting (0) | 2026.01.02 |
|---|---|
| [프로그래머스/Java] 타겟 넘버 (0) | 2026.01.01 |
| [LeetCode/Java] Container With Most Water (0) | 2026.01.01 |
| [프로그래머스/Java] n^2 배열 자르기 (0) | 2026.01.01 |
| [LeetCode/Java] String Compression (0) | 2026.01.01 |