코딩테스트-알고리즘/백준 BOJ

[백준 BOJ/Silver IV] 1940번 : 주몽

닉네임생각즁 2024. 2. 3. 15:36

 

https://www.acmicpc.net/problem/1940

 

1940번: 주몽

첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고

www.acmicpc.net

 

두개의 재료를 합쳐서 M이 되는지 확인하는 과정을 반복하면 된다

주의해야될 점은 다른 두개의 재료가 합쳐져야하기 때문에 i의 범위는 0~N-1 / j의 범위는 i+1~N 으로 해야한다!

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public 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[] num = new int[N];
		int count = 0;
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		for(int i = 0; i < N; i++) {
			num[i] = Integer.parseInt(st.nextToken());
		}
			
		for(int i = 0; i < N-1; i++) {
			for(int j = i+1; j < N; j++) {
				int x1 = num[i];
				int x2 = num[j];
				if(x1 + x2 == M) count++;
			}
		}
		
		System.out.println(count);
	}

}