白準9322鉄壁安全アルゴリズム(実施)
2253 ワード
問題では公開鍵1,2と暗号鍵が別々であるため、公開鍵1,2に対するインデックスの位置が分かれば、暗号鍵でコメントを復元することができる.
テストケース1
A B C D
D A B C
の場合は、移動したインデックスを確認します.
0 1 2 3
3 0 1 2
いいですよ.したがって、このインデックスをMAPに挿入し、キー値をロードするときにvalueの値に基づいてコメントに貼り付けることができます.
暗号文はC B A P(30 1 2)の順なので、コメントはB A P C(0 1 2 3)のはずです.
テストケース1
A B C D
D A B C
の場合は、移動したインデックスを確認します.
0 1 2 3
3 0 1 2
いいですよ.したがって、このインデックスをMAPに挿入し、キー値をロードするときにvalueの値に基づいてコメントに貼り付けることができます.
暗号文はC B A P(30 1 2)の順なので、コメントはB A P C(0 1 2 3)のはずです.
import java.util.*;
public class Main {
public static void main (String[]args) {
Scanner scanner = new Scanner(System.in);
int test = scanner.nextInt();
for(int t=0; t<test; t++){
int n = scanner.nextInt();
Map<Integer,Integer> map = new HashMap<>(); //map<in1 word idx, in2 word idx>
String[] s1 = new String[n];
String[] s2 = new String[n];
String[] pass = new String[n];
String res = "";
for(int i=0; i<n; i++){
s1[i] = scanner.next();
}
for(int i=0; i<n; i++){
s2[i] = scanner.next();
}
for(int i=0; i<n; i++){
pass[i] = scanner.next();
}
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(s1[i].equals(s2[j]))
map.put(i,j);
}
}
for(Integer i:map.values()){
res += (pass[i] + " ");
}
System.out.println(res);
}
}
}
Reference
この問題について(白準9322鉄壁安全アルゴリズム(実施)), 我々は、より多くの情報をここで見つけました https://velog.io/@dydgjs2016/백준-9322-철벽보안-알고리즘구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol