JAVA/Coding Test
[JAVA] 백준 1253 좋다_투포인터
오늘도개발
2024. 6. 9. 15:38
https://www.acmicpc.net/problem/1253
접근 :
- 입력된 수를 오름차순으로 정렬한다.
- 왼쪽끝, 오른쪽 끝에 포인터를 두고 이동시키면서 target 인 수가 되는지 확인한다.
- 포인터가 target 인 수이면, 다음으로 이동시키면서 끝까지 진행한다.
코드구현 :
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] inputs = br.readLine().split(" ");
int[] nums = new int[n];
for(int i= 0 ; i < n ; i++) nums[i] = Integer.parseInt(inputs[i]);
Arrays.sort(nums);
int left ;
int right ;
int ans = 0;
int temp_sum = 0;
for(int j = 0 ; j < n ; j++){
right = n - 1;
left = 0;
while (left < right) {
if(left == j) {
left++;
continue;
}
if(right == j){
right--;
continue;
}
temp_sum = nums[right] + nums[left];
if(temp_sum == nums[j]){
ans++;
break;
}
if(temp_sum < nums[j]){
left++;
continue;
}
right--;
}
}
System.out.println(ans);
br.close();
}
}