cpp) 백준 1764: 듣보잡
본문 바로가기
코딩 테스트/백준 (C++, Python)

cpp) 백준 1764: 듣보잡

by NEWSUN* 2023. 6. 25.

Problem

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

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하시오.

 

 

Solution

#include<iostream>
#include<string>
#include<unordered_map>
#include<set>

using namespace std;

int main(){
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

    unordered_map<string, int> list;  // key-value 쌍
    set<string> ans;  // 중복 비허용 정답 명단
    string s;  // key값
    int n, m;

    cin >> n >> m;
    for(int i=0;i<n;i++){
        cin >> s;
        list[s]++;
    }

    for(int i=0;i<m;i++){
        cin >> s;
        if (list[s]!=0){
            ans.insert(s);
        }
    }

    cout << ans.size() << '\n';
    for(auto i: ans) cout << i << '\n';

   return 0;
}

 

unordered mapset를 이용하여 풀이하였다. 먼저 key-value 자료형이 string, int인 unordered map를 생성한다. string 타입의 이름이 입력될 때마다 int 타입의 수가 늘어난다. 위 코드에서 int 타입의 수가 0이라는 것은 명단에 처음 들어오는 이름이라는 뜻으로, 중복되는 이름이 있다는 것을 의미한다. 이렇게 구해진 듣도 보도 못한 이름은 중복을 허용하지 않는 set입력되고 유일한 값으로 출력된다. 

 

 

Reference

https://dev-su.tistory.com/60

 

C++ 자료구조 - unordered map(hash map)

unordered map(hash map) map과 비슷하지만 정렬이 되어있지 않다. insert, erase, find 모두가 O(1)O(1) 으로 수행된다 셋이나 맵의 경우 O(log n)O(logn) 이었지만, unordered_set 과 unordered_map 의 경우 상수 시간에 원

dev-su.tistory.com

https://blockdmask.tistory.com/79

 

[C++] set container 정리 및 사용법

안녕하세요. BlockDMask 입니다 !오늘은 연관 컨테이너 set, multiset, map, multimap 중 set에 대해 학습해보겠습니다.순서는 set container -> set의 사용법 -> set의 생성자와 연산자 -> set의 멤버 함수 -> 다양한

blockdmask.tistory.com

https://hydroponicglass.tistory.com/entry/C11-STL-set-%EC%9B%90%EC%86%8C-%EC%89%BD%EA%B2%8C-%EC%B6%9C%EB%A0%A5%ED%95%98%EB%8A%94-%ED%8C%81

 

[C++, STL] set 원소 iterator 없이 출력(rage-based for loop)

*Range-Based for Loop 가 필요해서 C++11에서 동작합니다. set의 원소를 출력하는 방법을 알아보려고 인터넷을 검색했더니 제가 본 글들은 모두 아래와 같은 방법이었습니다. std::sets; for (set::iterator it =

hydroponicglass.tistory.com

 

'코딩 테스트 > 백준 (C++, Python)' 카테고리의 다른 글

cpp) 백준 2805: 나무 자르기  (0) 2023.06.27
cpp) 백준 13305: 주유소  (0) 2023.06.27
cpp) 백준 10816: 숫자 카드 2  (2) 2023.06.17
cpp) 백준 1920: 수 찾기  (0) 2023.06.15
cpp) 백준 10866: 덱  (0) 2023.06.14