m * n 크기의 입력 배열이 있습니다. 배열의 각 셀은 P 또는 T로 채워집니다. 배열에서 수행 할 수있는 유일한 작업은 열 뒤집기입니다. 열을 뒤집 으면 해당 열의 모든 셀에있는 문자가 전환됩니다 (P는 T가되고 그 반대). 동일한 문자 (예 : PPPP)를 가진 'x'개의 행 수가 있으면 포인트가 생깁니다. 배열을 가져와 결과 배열이 가능한 최대 점수를 갖도록 솔루션 (열을 뒤집을)을 반환하는 알고리즘을 설계하십시오.
참고 : 점수가 가장 높은 솔루션이 여러 개인 경우 플립 수가 가장 적은 솔루션을 선택하십시오. 예:
입력 배열 :
PPTPP
PPTPP
PPTTP
PPPTT
PPPTT
산출:
3
설명 :
최고점을 산출하는 솔루션 : 플립 열 번호. 3
원래 배열은 다음과 같습니다.
PPPPP // 1 point
PPPPP // 1 point
PPPTP
PPTTT
PPTTT
//Total: 2 points
열 4와 5를 뒤집어 2 점을 얻을 수도 있지만 추가적인 뒤집기가 필요합니다.
편리한 입력 형식을 사용하여 2 차원 배열을 나타낼 수도 있고, 두 개의 고유하지만 고정 된 값을 나타내 P
거나 를 나타낼 수도 T
있습니다.
이것은 코드 골프이므로 가장 짧은 대답 (바이트)이 이깁니다.