#문제
17219번: 비밀번호 찾기
https://www.acmicpc.net/problem/17219
17219번: 비밀번호 찾기
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번
www.acmicpc.net
#접근방법
map이라는 자료구조를 사용하면 쉽게 풀 수 있다.
반응형
#풀이
#include <iostream>
#include <map>
using namespace std;
int main(){
cin.tie(NULL);
ios::sync_with_stdio(false);
int N,M;
map<string,string> m;
string a,b;
cin >> N >> M;
for(int i=0;i<N;i++){
cin >> a >> b;
m[a] = b;
}
for(int i=0;i<M;i++){
cin >> a;
cout << m[a] << '\n';
}
return 0;
}
iostream 헤더파일을 사용하여 scanf대신 cin으로 변수들을 입력받았다.
cin.tie(NULL); 과 ios::sync_with_stdio(false);를 사용해서 scanf를 사용하면 안되기 때문이다.
map<string,string> m 으로 map 자료구조를 만들어주고
반복문을 통해 N개의 입력값을 받고 m[a] = b; 형식으로 저장해준다.
map은 보통 배열과 같이 1,2,3,...,n 처럼 정수값을 인덱스로 하는 것이 아니라 특정 자료형을 인덱스로 한다.
그리고 M개의 사이트를 입력받고 m[a]을 출력하면 정답이다.
#성능
#정리
map자료구조를 쓸 수 있으면 쉽게 풀 수 있는 문제였다.
'하루 한 문제' 카테고리의 다른 글
[백준] 2579번 : 계단 오르기 [C/C++] (0) | 2022.06.24 |
---|---|
[백준] 17626번 : Four Squares [C/C++] (0) | 2022.06.23 |
[백준] 11399번 : ATM [C/C++] (0) | 2022.06.21 |
[백준] 11047번 : 동전 0 [C/C++] (0) | 2022.06.20 |
[백준] 1764번 : 듣보잡 [C/C++] (0) | 2022.06.19 |