알고리즘 모음(C++)

백준 17219 - 비밀번호 찾기(C++) 본문

백준

백준 17219 - 비밀번호 찾기(C++)

공대생의 잡다한 사전 2021. 11. 19. 01:18

문제 링크입니다. https://www.acmicpc.net/problem/17219

 

17219번: 비밀번호 찾기

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

www.acmicpc.net

map과 string을 이용하면 간단하게 풀 수 있는 문제였습니다.

문제 조건
출력 예시

N과 M의 범위가 100,000 이기에 pair를 사용해 다중 for 문을 사용하면 시간 초과가 생길 수 있습니다.

따라서 map을 이용해, 사이트 주소와 비밀번호를 저장한 뒤, 해당 사이트의 비밀번호만 출력할 수 있도록 해야합니다.

 

이를 생각하고 풀면 간단한 문제였습니다.

 

자세한 것은 코드를 참고해주세요.

#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
#include <deque>
#include <map>

using namespace std;

int N, M;
map<string, string> password;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> N >> M;
	for (int i = 0; i < N; i++) {
		string x, y;
		cin >> x >> y;
		password[x] = y;
	}
	for (int i = 0; i < M; i++) {
		string x;
		cin >> x;
		cout << password[x] << "\n";
	}
	return 0;
}

 

 

질문 및 조언 댓글 남겨주세요!

'백준' 카테고리의 다른 글

백준 15683 - 감시(C++)  (0) 2021.12.20
백준 16933 - 벽 부수고 이동하기 3(C++)  (0) 2021.11.20
백준 5525 - IOIOI(C++)  (0) 2021.11.19
백준 2644 - 촌수계산(C++)  (0) 2021.11.18
백준 1780 - 종이의 개수(C++)  (0) 2021.11.18