๐ ๋ฌธ์
https://www.acmicpc.net/problem/1940
1940๋ฒ: ์ฃผ๋ชฝ
์ฒซ์งธ ์ค์๋ ์ฌ๋ฃ์ ๊ฐ์ N(1 ≤ N ≤ 15,000)์ด ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ์ค์๋ ๊ฐ์ท์ ๋ง๋๋๋ฐ ํ์ํ ์ M(1 ≤ M ≤ 10,000,000) ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ์ ์งธ ์ค์๋ N๊ฐ์ ์ฌ๋ฃ๋ค์ด ๊ฐ์ง ๊ณ
www.acmicpc.net
๐ ํ์ด
- ํด๋น ๋ฌธ์ ๋ ์ด์ค ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํด๊ฒฐํ ์ ์์ต๋๋ค.
- ๋ฌธ์ ์ ๊ฐ์ฅ ์ฒซ ํ์ด ์์์ ์ฃผ์ด์ง N ๊ฐ์ ์ซ์ ๊ฐ์๊ฐ 15,000 ๊ฐ ์ด๋ฏ๋ก ์ ๋ ฌ ํ ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค ์ ๋๋ค.
- ์ ๋ ฌ์ด ๊ฐ๋ฅํ๊ธฐ์ ์ด์ค ํฌ์ธํฐ๋ก M(๋ ์ซ์๋ฅผ ํฉํด์ ๋ง๋ค์ด์ผ ํ๋ ์ซ์)์ ๊ตฌํ ์ ์์ต๋๋ค.
๐ ์ฝ๋
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int M = Integer.parseInt(br.readLine());
int[] A = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 0; i< N; i++){
A[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(A); // ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
int count = 0;
int i = 0; //A[0] --> min
int j = N - 1; //A[N-1] --> max
while(i < j){
if(A[i] + A[j] < M) i++;
else if(A[i] + A[j] > M) j--;
else{
count++;
i++;
j--;
}
}
System.out.println(count);
}
}
'Algorithms > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[12891๋ฒ] DNA ๋น๋ฐ๋ฒํธ (0) | 2023.09.21 |
---|---|
Java ์์ ์ ๋ ฅ ๊ฐ ๋ฐ์์ค๊ธฐ (0) | 2023.06.12 |