728x90
https://www.acmicpc.net/problem/1253
🖊️문제
N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다.
N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라.
수의 위치가 다르면 값이 같아도 다른 수이다.
🖊️문제풀이
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
int count = 0;
long arr[] = new long[n];
StringTokenizer st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
arr[i] = Long.parseLong(st.nextToken());
}
Arrays.sort(arr);
for (int i = 0; i < n; i++) {
long find = arr[i];
int start = 0;
int end = n-1;
while (start<end){
if(arr[start] + arr[end] == find){
if(start != i && end != i){
count++;
break;
}else if(i==start){
start++;
}else{
end--;
}
}else if(arr[start] + arr[end] < find){
start++;
}else{
end--;
}
}
}
System.out.println(count);
bf.close();
}
}
투포인터를 이용하여 문제 풀이
728x90
'알고리즘 자료구조 > 백준' 카테고리의 다른 글
[백준] 2164 카드2 (0) | 2023.08.30 |
---|---|
[백준] 1874 스택 수열 (0) | 2023.08.29 |
[백준] 1940 주몽 (0) | 2023.08.15 |
[백준]2018 수들의 합 5 (0) | 2023.08.15 |
[백준]11659 구간 합 구하기 4 (0) | 2023.08.10 |