※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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 |