BOJ_S3_3273
๐ [S3_3273] ๋ ์์ ํฉ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringTokenizer;
public class Main {
static int N,X,res;
static int[] arr;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
// input
N = Integer.parseInt(br.readLine());
ArrayList<Integer> list = new ArrayList<>();
st= new StringTokenizer(br.readLine()," ");
for(int i=0; i<N; i++){
int input = Integer.parseInt(st.nextToken());
list.add(input);
}
X = Integer.parseInt(br.readLine());
// listMinus ์๋ X์์ ๊ฐ์ ๋บ ๊ฐ์ด ์ ์ฅ๋๋ค.
HashMap<Integer, Integer> map = new HashMap<>();
for(int i=0; i<N; i++){
int minus = X-list.get(i);
// 0๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ํต๊ณผ
if(minus<=0) continue;
map.put(minus,minus);
}
// list ๋๋ฉด์ ์ฐพ๊ธฐ
for(int i=0; i<N; i++){
if(map.containsKey(list.get(i))){
res++;
}
}
System.out.println(res/2);
}
}
๐ค ๋์ ์๊ฐ
์ด ๋ฌธ์ ๋ ๊ฒฐ๊ตญ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๋ ์ธ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ list๋ก ๊ฐ๋ค์ ๋ฐ์์ฃผ๊ณ ๊ณ์ฐํ ๋ค ์ฐพ๋ ๊ฒ์ HashMap์ ํตํด ์ฐพ์์ฃผ์๋ค.
- list๋ก ๋ฐฐ์ด์ ์ ๋ ฅ ๋ฐ๋๋ค. ( HashMap์ผ๋ก ์๋ฐ๋ ์ด์ ๋ HashMap์ผ๋ก ๋ฐ์ผ๋ฉด ์๋์ ๋ ฌ ๋๊ธฐ ๋๋ฌธ์ ์์๊ฐ ์ค์ํ ๋ฌธ์ ๋ผ์ ์ฌ์ฉํ ์ ์๋ค. )
- HashMap์ (X-llst๊ฐ)์ ์ ์ฅํ๋ค. ์ฌ๊ธฐ์ ๋ง์ฝ 0๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ ์ฅํ์ง ์๋๋ค. 2๊ฐ๋ก ๋ง๋ค์ด์ง ์ ์๊ธฐ ๋๋ฌธ
- list๋ฅผ ๋ค์ ๋๋ฉด์ map ๊ฐ์ด ์๋์ง ์ฒดํฌ -> ์์ผ๋ฉด ์นด์ดํ ํด์ค๋ค.
- ์นด์ดํ ํ ๊ฐ์ ์ถ๋ ฅํด์ค๋ค.