post image post image post image post image post image post image post image post image

www.acmicpc.net/problem/9322

 

9322번: 철벽 보안 알고리즘

소희는 공개키와 개인키 한 쌍으로 보안을 유지하는 것이 매우 불편하다고 생각했다. 그래서 소희는 공개키만을 이용하는 암호화 체계를 개발했다. 이를 "철벽 보안 알고리즘"이라고 부르기로

www.acmicpc.net

문제 설명이 장황한데, 그냥 제 1공개키와 제 2공개키의 단어 배치 순서만 확인해서 주어지는 문자열을 재배치 시켜주면 되는 문제이다.

 

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

#define fastio ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
using namespace std;

int code2[1000];
string s[1000];

int main() {
	fastio;
	int t, n;
	string tmp;
	unordered_map<string, int> code1;

	cin >> t;
	while (t--) {
		cin >> n;
        //단어의 원래 위치 해쉬맵에 저장
		for (int i = 0; i < n; i++) {
			cin >> tmp; code1[tmp] = i;
		}
        //단어의 바뀐 위치를 인덱스로 가지는 곳의 값에 단어의 원래 위치를 저장
		for (int i = 0; i < n; i++) {
			cin >> tmp; code2[i] = code1[tmp];
		}
        //재배치하고자 하는 문장을 입력받아 code2배열을 확인하여 s배열에 재배치
		for (int i = 0; i < n; i++) {
			cin >> tmp; s[code2[i]] = tmp;
		}
		for (int i = 0; i < n; i++) {
			cout << s[i] << ' ';
			s[i] = "";
			code2[i] = 0;
		}
		cout << '\n';

		code1.clear();
	}

	return 0;
}
메모리: 2192 KB 시간: 24 ms

'컴퓨터 사이언스 > 1고리즘' 카테고리의 다른 글

백준 2660 : 회장뽑기  (4) 2021.03.17
백준 12018 : Yonsei TOTO  (5) 2021.03.10
백준 4375 : 1  (1) 2021.03.10
백준 3896 : 소수 사이 순열  (0) 2021.03.10
백준 12767 : Ceiling Function  (0) 2021.03.04

+ Recent posts