알고리즘/백준

백준 5608 問題 2

등반 2021. 12. 27. 00:26

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

 

5608번: 問題 2

入力ファイルには, 変換表(最初の n + 1 行)に続き変換するデータ(n + 2 行目以降)が書いてある. 1 行目に変換表の行数 n, 続く n 行の各行は, 空白をはさんで 2 つの文字, さらに続け

www.acmicpc.net

ㅎ..

입력 해설

정수 n

n개의 줄에, 문자 a, b (a -> b 매핑할 것)

정수 m

m개의 줄에, 문자 sth

 

문제 해설

1. map을 이용해 매핑할 값들을 저장한다.

2. m개의 문자를 입력받으며

2-1. 매핑 테이블에 있는 경우 매핑한 값을,

2-2. 없는 경우 값 그대로를

3. 출력할 문자열에 순서대로 추가한다.

#include <iostream>
#define fio cin.tie(0)->sync_with_stdio(0)
using namespace std;

#include <map>
int main(){
    fio;
    int N; cin >> N;
    map<string, string> M;
    for(int i=0; i < N; i++){
        string A, B; cin >> A >> B;
        M[A] = B;
    }
    //
    string ans;
    cin >> N;
    for(int i=0; i< N; i++){
        string tmp; cin >> tmp;
        if(M.find(tmp) != M.end()){//있다.
            ans += M[tmp];
        }else{
            ans += tmp;
        }
    }
    cout << ans <<'\n';
    return 0;
}