본문 바로가기

CodingTest/BOJ

[BOJ 17219] 백준 비밀번호 찾기 풀이 - C++

사용언어 :  C++

 

 

 

 

 

문제풀이

 * key,value 모두 string인 unordered_map을 이용해 key엔 사이트 주소, value엔 비밀번호를 저장했다.

 

(1) address,password 입력받아 map에 대입하기

unordered_map<string, string> m;
	//string은 공백을 기준으로 값을 받는다
	cin >> N >> M;
	for (int i = 0; i < N; i++) {
		cin >> address >> pwd;
		m[address] = pwd; //index를 이용해 저장
	}

 

(2) 찾고자 하는 address를 입력받아 map[address]값 출력하기

for (int i = 0; i < M; i++) {
		cin >> address;
		cout << m[address]<<"\n";
	}

 

 

전체코드

 

#include<iostream>
using namespace std;
#include<unordered_map>
#include<string>
string address, pwd;
int N, M;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	unordered_map<string, string> m;

	cin >> N >> M;
	for (int i = 0; i < N; i++) {
		cin >> address >> pwd;
		m[address] = pwd;
	}

	for (int i = 0; i < M; i++) {
		cin >> address;
		cout << m[address]<<"\n";
	}
}

 

 

 

총평

(unordered) map 을 사용하면 매우 간단한 문제!

 


문제 출처

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

 

17219번: 비밀번호 찾기

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

www.acmicpc.net