📢 공지합니다
이 게시글은 메인 페이지에 항상 고정되어 표시됩니다.
https://www.acmicpc.net/problem/1253
package datastructure;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Data1253 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int []num = new int[N];
st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++){
num[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(num);
int result =0;
for(int i=0; i<N; i++){
int left =0;
int right =N-1;
int sum = num[i];
while(left < right){
int target = num[left] + num[right];
if(sum == target){
if(left !=i && right !=i){ // 문제 조고너이 어떤 수가 다른 수 두개의 합임 즉 내 자신이 나를 선택할 수 없음!
result++;
break;
}else if(left == i){
left ++; // 0 0 0 0 일때 i가 1번째 이고 left랑 right 가 1번쨰 3번째일떄 left는 자신의 것을 쓸 수 없어 업!
}else{
right--; // 0 0 4 4 일때 i가 3번째 이고 left랑 right가 각각 0번쨰 3번째일떄 right는 자신의 것을 쓸 수 없으므로 다운
}
}else if(sum > target){
left++;
}else{
right--;
}
}
}
System.out.println(result);
}
}
이게 골드 문제 맞음??? ㅋㅋㅋ
문제 핵심 내용은 주석처리 해놓았다.
[백준 17140번] 이차원 배열과 연산 (1) | 2025.06.09 |
---|---|
[백준 17142번] 연구소3 (0) | 2025.06.09 |
[백준 15486번] 퇴사2 (1) | 2025.06.07 |
[백준 17144번] 미세먼지 안녕! (1) | 2025.06.06 |
[백준 16236번] 아기 상어 (1) | 2025.06.05 |