※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 33643번 문제인 Pencil Crayons이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/33646
각 박스에 들어있는 크레용의 색이 겹치지 않도록 최소한의 크레용을 빼내자. 이 빼낸 크레용을 이용하여 다시 모든 박스를 서로 다른 색으로 채울 수 있음은 자명하다.
위 과정은 set 등의 자료구조를 이용하여 어렵지 않게 구현할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
#include <set>
using namespace std;
int N, K, ans;
set<string> st;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> K;
for (int n = 0; n < N; n++) {
st.clear();
for (int k = 0; k < K; k++) {
string s; cin >> s;
if (st.count(s)) ans++;
else st.insert(s);
}
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 33656 // C++] Island Exploration (0) | 2025.03.25 |
---|---|
[BOJ 33638 // C++] Birthday Candles (0) | 2025.03.21 |
[BOJ 33643 // C++] Keys, Phone, Wallet (0) | 2025.03.19 |
[BOJ 2450 // C++] 모양 정돈 (0) | 2025.03.18 |
[BOJ 24605 // C++] Tetris Generation (0) | 2025.03.17 |