백준 9322 철벽보안 알고리즘(구현)
문제에서 공개키 1,2와 암호키로 구분되어 있기때문에, 공개키 1,2에 대한 인덱스의 위치만 알게되면 암호키로 평문을 복구할 수 있게 된다.
테스트케이스1
A B C D
D A B C
의 경우에서 옮겨진 인덱스를 확인하면
0 1 2 3
3 0 1 2
가 된다. 따라서 이 인덱스를 MAP에 담아주고, key 값을 불러올 때 value의 값에 따라 평문에 붙여주면 된다.
암호문이 C B A P (3 0 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);
}
}
}
Author And Source
이 문제에 관하여(백준 9322 철벽보안 알고리즘(구현)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dydgjs2016/백준-9322-철벽보안-알고리즘구현저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)