애드혹 2

[알고리즘] Codeforces Round #770 (Div. 2)

이번 코드포스의 결과는 굉장히 참담했다. 그래서 다시 그린으로 내려왔다. A - Reverse and Concatenate [Solved!] 문자열이 주어졌을 때 다음 연산을 $k$번 하여 만들 수 있는 서로 다른 문자열의 수를 구하는 문제이다. 연산은 다음중 하나를 수행한다. - 문자열을 뒤집어 원래 문자열 앞에 이어 붙인다. - 문자열을 뒤집어 원래 문자열 뒤에 이어 붙인다. 우선 연산을 한 번이라도 수행하면 문자열은 팰린드롬이 된다. 또한 팰린드롬은 뒤집어서 어디에 이어 붙여도 같은 문자열이 된다. 결국 주어진 문자열이 팰린드롬인지 확인하는 문제로 환원된다. 다만 팰린드롬에 상관없이 $k=0$일 때는 답이 1이다. A번부터 뇌절을 심하게 해서 4번틀리고 AC를 받았다. (발상이 상당히 힘들었다.) ..

[알고리즘] Educational Codeforces Round 122 (Rated for Div. 2)

버추얼에 참가했다. 이번 대회는 다른 대회보다 쉬웠던 것 같다. A - Div. 7 [Solved!] 정수가 하나 주어졌을 때 변화하는 자릿수를 최소로 하며 7의 배수로 만드는 문제이다. 7의 배수이면 그냥 출력하고 아니라면 1의 자리를 0~9까지 변화하면서 7의 배수가 되는 수를 출력한다. 자릿수를 하나만 변화시켜도 7의 배수를 만들 수 있다. B - Minority [Solved!] 이진문자열이 주어졌을 때 부분 문자열을 골라 0, 1중에 개수가 작은 문자를 전부 삭제한다.(같으면 무효) 이때 삭제한 문자의 수의 최댓값을 구하는 문제이다. 전체 문자열을 부분문자열로 선택하고 둘 중에 개수가 작은 문자의 수를 출력하면 된다. 만약 같은 경우는 갯수-1을 출력하면 된다. C - Kill the Monst..