[CF 1194D] 1-2-K Game - 1700 문제 설명 : 0번째부터 n번째 칸이 있는 판이 있다. n번째 칸부터 시작하여 두 사람이 번갈아가며 게임을 하면서 매 시행마다 1칸 혹은 2칸 혹은 k칸을 현재 칸에서 왼쪽으로(작은 값)움직일 수 있다. 그래서 본인 차례에서 말이 0번째 칸에 위치한 사람이 패배하게 되는 게임이다. 두 사람은 최적으로 게임한다고 할 때 누가 이기는지 찾는 문제이다. 풀이 : 이런 게임문제의 유형에서 누가 이기냐를 정할 때는 항상 두 사람이 최적으로 플레이한다고 하는데 이 말을 풀어쓰면 이렇다. '맨 처음에 시작하는 사람이 반드시 이길 수 있는가?'를 묻는 것과 같다. 만약 반드시 이길 수 없다면 그 다음 사람이 이기게 되는 것과 같다 이 문제에서는 처음 시작하는 사람이 ..
[CF 1186C] Vus the Cossack and Strings - 1800 문제 설명 : 0과 1로만 이루어진 문자열 a,b가 주어진다. a의 길이는 b의 길이보다 크거나 같다. a문자열에서 b문자열의 길이와 같게끔 모든 substring들을 뽑아냈을 때, b문자열의 각 인덱스와 비교해서 값이 다른 인덱스의 숫자가 짝수개인 substring이 총 몇 개 존재 하는지 구하는 문제이다. 풀이 : 결론부터 얘기하면 a문자열의 각 substring에 존재하는 1의 개수의 홀짝과 b에 존재하는 1의 개수의 홀짝이 같다면 정답이 된다.'값이 다르다'는 얘기는 하나는 0이고 다른 하나는 1이라는 의미이다. 전체에서 이런 케이스가 총 몇 개인지를 세면 되는 것이다. 이걸 세는 방법은 비교할 두 문자열 c,d에서..