본문 바로가기

algorithm

(69)
백준 1269번 대칭 차집합 https://www.acmicpc.net/problem/1269 아이디어:1. (A - B) + (B - A) 는 (A ∪ B) - (A ∩ B) 와 같다.2. 교집합을 구하는 set_intersection() 함수는 아직 사용하기 어려워 정석대로 A ∪ B와 A ∩ B를 구해서 erase했다.3. A ∪ B는 하나의 set에 A와 B의 원소를 모두 insert하면 알아서 중복을 제거하며 생성된다.4. A ∩ B는 하나의 B의 원소가 A의 원소에도 있으면 추가하는 식으로 생성한다.5. A ∪ B에서 A ∩ B를 erase하고 size를 출력한다. // 1269#include #include using namespace std;int main() { int n, m, k; cin >> n >> m; se..
백준 1764번 듣보잡 #include #include using namespace std;map hear;int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; int count = 0; string value; cin >> n >> m; for (int i = 0; i > value; hear.insert({ value, 0 }); } for (int i = 0; i > value; if (hear.find(value) != hear.end()) { count++; hear[value]++; } } cout ::iterator iter = hear.begin(); iter != hear.end(); iter++) { if (iter->second >..
백준 10816번 숫자 카드 2 https://www.acmicpc.net/problem/10816 아이디어:1. map 사용. map의 first는 카드, second는 갯수로 활용. ex) , , ...2. 출력은 그냥 map의 second 출력 #include #include using namespace std;map card;int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m, k; cin >> n; for (int i = 0; i > k; card[k]++; } cin >> m; for (int i = 0; i > k; cout  틀린 코드 설명:#include #include using namespace std;int main() { ios::sync_wit..
백준 1620번 나는야 포켓몬 마스터 이다솜 https://www.acmicpc.net/problem/1620 아이디어:1. map은 value로 key를 찾는 함수가 없어 직접 for문을 만들어야하기 때문에 시간 초과를 유발한다.따라서 map과 map로 2개의 map을 만들고 find 함수를 사용한다.2. 출력은 입력 들어오는대로 했다.3. 전역변수로 선언해서 메모리의 스택 영역이 아닌 힙 영역을 사용했다.  // 1620#include #include #include using namespace std;map db;map db2;int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m, k; string value; cin >> n >> m; for (int i = 0; i > value;..