πŸ•οΈ PS (BOJ)/Linear Data Structure

[C++][BOJ] λ°±μ€€ 1822번: μ°¨μ§‘ν•©

선달 2024. 8. 23. 03:27
λ°˜μ‘ν˜•

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

 

문제

λͺ‡ 개의 μžμ—°μˆ˜λ‘œ 이루어진 두 μ§‘ν•© A와 Bκ°€ μžˆλ‹€. μ§‘ν•© Aμ—λŠ” μ†ν•˜λ©΄μ„œ μ§‘ν•© Bμ—λŠ” μ†ν•˜μ§€ μ•ŠλŠ” λͺ¨λ“  μ›μ†Œλ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 μ€„μ—λŠ” μ§‘ν•© A의 μ›μ†Œμ˜ 개수 n(A)와 μ§‘ν•© B의 μ›μ†Œμ˜ 개수 n(B)κ°€ 빈 칸을 사이에 두고 μ£Όμ–΄μ§„λ‹€. (1 ≤ n(A), n(B) ≤ 500,000)이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ μ€„μ—λŠ” μ§‘ν•© A의 μ›μ†Œκ°€, μ…‹μ§Έ μ€„μ—λŠ” μ§‘ν•© B의 μ›μ†Œκ°€ 빈 칸을 사이에 두고 μ£Όμ–΄μ§„λ‹€. ν•˜λ‚˜μ˜ μ§‘ν•©μ˜ μ›μ†ŒλŠ” 2,147,483,647 μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ©°, ν•˜λ‚˜μ˜ 집합에 μ†ν•˜λŠ” λͺ¨λ“  μ›μ†Œμ˜ 값은 λ‹€λ₯΄λ‹€.

좜λ ₯

첫째 쀄에 μ§‘ν•© Aμ—λŠ” μ†ν•˜λ©΄μ„œ μ§‘ν•© Bμ—λŠ” μ†ν•˜μ§€ μ•ŠλŠ” μ›μ†Œμ˜ 개수λ₯Ό 좜λ ₯ν•œλ‹€. λ‹€μŒ μ€„μ—λŠ” ꡬ체적인 μ›μ†Œλ₯Ό 빈 칸을 사이에 두고 μ¦κ°€ν•˜λŠ” μˆœμ„œλ‘œ 좜λ ₯ν•œλ‹€. μ§‘ν•© Aμ—λŠ” μ†ν•˜λ©΄μ„œ μ§‘ν•© Bμ—λŠ” μ†ν•˜μ§€ μ•ŠλŠ” μ›μ†Œκ°€ μ—†λ‹€λ©΄ 첫째 쀄에 0λ§Œμ„ 좜λ ₯ν•˜λ©΄ λœλ‹€.

 

풀이

// 풀이 : https://whkakrkr.tistory.com

#include <iostream>
#include <set>

using namespace std;

int main() {
	int na, nb, tmp;
	cin >> na >> nb;
	
	set<long long>s;
	for(int i=0; i<na; i++) {
	    cin >> tmp;
	    s.insert(tmp);
	}
	for(int i=0; i<nb; i++) {
	    cin >> tmp;
	    s.erase(tmp);
	}
	
	cout << s.size() << "\n";
	for(long long i : s) {
	    cout << i << " ";
	}

    return 0;
}
λ°˜μ‘ν˜•