본문 바로가기

Problem Solving/자료구조 및 구현

BOJ 9322- 철벽 보안 알고리즘

문제 링크(Link)


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


문제 해결(Solution)


 1. 제 1 공개키와 제 2 공개키의 순서를 저장하고 처리하는 자료구조에 관한 문제.


 2. ① 문자열을 인덱스로 저장하면서 동시에 자동 정렬이 되지 않는 자료구조인 'unordered_map'을 사용.

② 제 1 공개키의 순서를 저장하는 배열(order)을 사용.

③ 제 2 공개키가 주어지면, ②에서 사용한 배열의 값을 인덱스로 사용해서 답을 저장하는 배열(answer)을 사용.



ex) 제 1 공개키 :  "I AM HAPPY"    제 2 공개키 : "AM HAPPY I"    암호문 : "LOVES HER HE"


- unordered_map(first==string, second==order) : { {I, 0}, {AM, 1}, {HAPPY, 2} }

- order : { 1, 2, 0 }

- answer[order[0]] == answer[1] == "LOVES"

  answer[order[1]] == answer[2] == "HER"

  answer[order[2]] == answer[0] == "HE"


- 평문 : "HE LOVES HER"


주의할 점 || 생각해볼 점(Caution || Consideration)


 1. unordered_map에 대해서 알아야 이 풀이를 이해할 수 있다.


참고(Reference)


 - unordered_map에 관한 설명 : http://www.cplusplus.com/reference/unordered_map/unordered_map/




※ 정확하고 부드러운 태클은 언제나 환영입니다.