문제풀이/백준
[JAVA] 주몽 - 백준 1940
PhoB
2025. 5. 20. 00:58
https://www.acmicpc.net/problem/1940
내 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(input.readLine());
int m = Integer.parseInt(input.readLine());
StringTokenizer st = new StringTokenizer(input.readLine());
int[] array = new int[n];
for (int i = 0; i < n; i++){
array[i] = Integer.parseInt(st.nextToken());
}
int left = 0;
int right = n-1;
int answer = 0;
Arrays.sort(array);
while(left < right){
int tmp = array[left] + array[right];
if(tmp == m) {
answer++;
left++;
right--;
}
else if (tmp < m) {
left++;
} else{
right--;
}
}
System.out.println(answer);
}
}
코드 설명
단순한 슬라이딩 윈도우 문제인것 같다.
입력값이 저장된 배열을 오름차순 정렬한 후 양 끝에서 2개씩 더해서 조건에 부합하는지 확인하는 문제였다.