해시를 사용한 집합과 맵 5

C

[BOJ 4195] 친구 네트워크 C++

난이도: Gold 2 번호: 4195 생성일: March 2, 2023 7:14 PM 알고리즘 분류: 분리 집합, 자료 구조, 해시를 사용한 집합과 맵 알고리즘, 자료 구조: Disjoint Set, Union-find 언어: C++ 4195번: 친구 네트워크 C++ // BOJ4195 친구 네트워크 #include #include #include #include using namespace std; // 이름과 인덱스를 매핑할 unordered_map unordered_map uMap; // 부모 노드를 저장할 vector vector parent; // 친구 수를 저장할 vector vector friend_num; // 인덱스에 해당하는 노드의 루트 노드를 반환하는 함수 int getParent(i..

Algorithm/BOJ 2023.03.02

C

[BOJ 7785] S5 회사에 있는 사람 { C++ }

7785번: 회사에 있는 사람 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net C++ #include #include #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int N, idx; string name, status; set S; cin >> N; while (N--) { cin >> name >> status; if (status == "enter") S.insert(name)..

카테고리 없음 2022.07.05

C

[BOJ 1302] S4 베스트 셀러 {C++}

1302번: 베스트셀러 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net C++ #include #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); pair P = {"", -1}; map M; string S; int N; cin >> N; /************************** * * S : 입력 받을 문자열 * M : map이 중복 제거 및 문자열 알파벳 순 정렬을 해준다! * P : 가장 많이 팔린 책 정..

C

[BOJ 9733] S5 꿀벌 {C++}

9733번: 꿀벌 C++ #include #include #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); cout.setf(ios::fixed); cout.precision(2); unordered_map M; string S, ord[] = {"Re", "Pt", "Cc", "Ea", "Tb", "Cm", "Ex"}; int T = 0; /************************** * * S : 입력 받을 문자열 * M : 중복 제거 map 자료구조 * T : 전체 일 개수 **************************/ while (getline(cin, S)) { stringstream ss(S); // s..

C

[ BOJ 5568 ] S4 카드 놓기 { C++ }

5568번: 카드 놓기 5568번: 카드 놓기 예제 1의 경우 상근이는 11, 12, 21, 112, 121, 122, 212를 만들 수 있다. www.acmicpc.net C++ 뽑을 카드 개수에 따라 모든 경우의 수를 돌려야 하므로 백 트래킹. map은 중복 검사와 정렬까지 해주는데, 이 문제에서 정렬은 필요가 없으므로 대신 unordered_set, unordered_map을 써도 좋다. map은 set과 구조가 같다 카더라. #include #include #include using namespace std; map M; vector DECK; int N, P, cnt = 0; bool USED[10]; void f(vector V, int D) { if (D == P) { string res =..