Algorithm/백준

[백준] 1940 with C++

nowkoes 2023. 2. 21. 14:56

문제설명


입출력 예제


개념

 실버 단계에 랭크되어 있지만, 문제만 제대로 이해한다면 브론즈 단계의 문제다. 고유 번호를 합쳤을 때, 갑옷을 만드는 데 필요한 수를 확인하면 간단하게 해결할 수 있는 문제다.


풀이

#include <iostream>
using namespace std;

int main()
{
	int N, M, cnt = 0;
	int ary[150001] = {0};
	cin >> N >> M;

	for (int i = 0; i < N; i++)
		cin >> ary[i];

 재료의 개수 N, 갑옷을 만드는 데 필요한 개수 M, 재료의 고유 번호 ary를 초기화해준다.

 

	for (int i = 0; i < N; i++)
	{
		for (int j = i + 1; j < N; j++)
		{
			if (ary[i] + ary[j] == M)
				cnt++;
		}
	}

	cout << cnt;
}

 배열의 원소를 하나씩 검사하며, 둘을 더했을 때 M이 되는지 확인한 수 개수를 증가시키면 간단하게 해결된다. 이를 시각적으로 표현하면 다음과 같다.

 

 

총합본

#include <iostream>
using namespace std;

int main()
{
	int N, M, cnt = 0;
	int ary[150001] = {0};
	cin >> N >> M;

	for (int i = 0; i < N; i++)
		cin >> ary[i];

	for (int i = 0; i < N; i++)
	{
		for (int j = i + 1; j < N; j++)
		{
			if (ary[i] + ary[j] == M)
				cnt++;
		}
	}

	cout << cnt;
}
반응형

'Algorithm > 백준' 카테고리의 다른 글

[백준] 1065 with C++  (0) 2023.02.23
[백준] 1620 with C++  (0) 2023.02.22
[백준] 3986 with C++  (0) 2023.02.20
[백준] 1193 with C++  (0) 2023.02.19
[백준] 1316 with C++  (0) 2023.02.18