개발정리를 위한 개발로그, 발로그!

하나씩 풀어보고자 한다.

SRM 144 DIV 1 ( 300 - Point 문제 ) 


- 문제 링크는 어떻게 하는지 몰라서 패스!


처음엔 DFS, BFS 류의 서치인줄 알았으나 생각해보니 그런 류의 문제는 아니였음

사실상 문제 속에 답이 있어서, 처음에 헛다리 안짚고 진행하면 문제가 없음


내 풀이 방법은 아래와 같음

( 암호화 전의 String을 B, 암호화 후의 String을 E라 하겠음) 

E를 통해 B를 알아내는 문제


B의 첫번째 값을 0 혹은 1로 가정하고 진행.


P[i] 번째 값은 B[i-1] + B[i] + B[i+1] , 큰 의미는 없지만 수식으로 나타내면 P[i] = B[i-1] + B[i] + B[i+1];


P[0] = B[0] ( 이 값을 0 혹은 1 로 가정 ) + B[1];

이렇게 B[1]을 구할 수 있음, P는 이미 알고 있기 때문에


이제 문제되는 부분은 B가 올바르게 구해졌는지 아닌지 체크

- P[i] - B[i-1] - B[i] = B[i+1]; -> 이렇게 구한 값이 0 혹은 1이 아니면 올바르게 추출되지 않았다고 판단하면 된다. 


어렵게 생각하면 어렵지만 정말 쉬운 문제!