알고리즘/문제 풀이

백준 17219번: 비밀번호 찾기

Themion 2022. 1. 13. 14:33

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

 

17219번: 비밀번호 찾기

첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번

www.acmicpc.net

unordered_map을 이용해 도메인과 비밀번호를 연결해 저장한 뒤 각 쿼리마다 도메인의 비밀번호를 출력한다.

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

using namespace std;

int main() {
	//cin, cout 사용 시 필히 사용할 것
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

    // N: 비밀번호를 저장할 도메인의 수
    // M: 비밀번호를 가져올 도메인의 수
    int N, M;
    // domain: 도메인, pw: 패스워드
    string domain, pw;
    // 도메인과 비밀번호를 map에 저장
    // unordered_map을 사용하면 메모리와 시간을 절약할 수 있다
    unordered_map<string, string> m;

    cin >> N >> M;
    while (N--) {
        // 도메인과 비밀번호를 읽어와 m에 저장
        cin >> domain >> pw;
        m.insert({domain, pw});
    }

    while (M--) {
        // 도메인을 읽어와 해당 도메인의 비밀번호를 출력
        cin >> domain;
        cout << m.find(domain)->second << '\n';
    }

    return 0;
}