※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 28282번 문제인 운명이다.
문제는 아래 링크를 확인하자.

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

 

28282번: 운명

동원이는 왼발 전용 양말을 총 4개 가지고 있으며, 각 양말의 색은 1, 3, 2, 4번 색이다. 동원이는 오른발 전용 양말을 총 4개 가지고 있으며, 각 양말의 색은 3, 1, 1, 5번 색이다. 동원이가 양쪽 발에

www.acmicpc.net

양발에 다른 색의 양말을 신을 경우의 수는 (양말을 신을 전체 경우의 수) - (양발에 같은 색의 양말을 신을 경우의 수)로 계산할 수 있다.

 

양말을 신을 전체 경우의 수는 왼발양말 X개 중 하나와 오른발양말 X개 중 하나를 고르는 경우의 수와 같으므로 \(X^2\)이다.

 

양발에 같은 색의 양말을 신을 경우의 수는 각 색상별로 왼발양말의 개수와 오른발양말의 개수를 곱한 값을 더하는 것으로 계산할 수 있다.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;
typedef long long ll;

ll X, K;
ll L[10001], R[10001];
ll ans;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> X >> K;
	for (int i = 0; i < X; i++) {
		int x; cin >> x;
		L[x]++;
	}
	for (int i = 0; i < X; i++) {
		int x; cin >> x;
		R[x]++;
	}

	ans = X * X;
	for (int i = 1; i <= K; i++) ans -= L[i] * R[i];

	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 28061 // C++] 레몬 따기  (0) 2023.11.23
[BOJ 28281 // C++] 선물  (0) 2023.11.22
[BOJ 28283 // C++] 해킹  (1) 2023.11.20
[BOJ 28284 // C++] 스터디 카페  (1) 2023.11.19
[BOJ 28285 // C++] 육각형 순회  (0) 2023.11.18

+ Recent posts