문제
두 단어가 주어지면 디지털 루트 전투 에서 우승자를 찾으십시오 .
이런 식으로 단어 의 디지털 루트 를 정의하십시오 .
- 알파벳의 각 문자에는 숫자가 할당됩니다 : A = 1, B = 2, C = 3, ..., Z = 26
- 각 글자의 값을 더하여 단어를 합산하십시오. 예를 들어 "CAT"을 사용하십시오. C + A + T = 3 + 1 + 20 = 24
- 결과를 구성하는 모든 단일 숫자를 추가하십시오. 24 => 2 + 4 = 6
- 한 자리에 도달 할 때까지 3 단계를 반복하십시오. 그 한 자리 숫자는 단어 의 디지털 뿌리 입니다.
규칙 :
- 디지털 루트 가 다른 루트 보다 큰 경우 승자가 선언됩니다 .
- 는 IF 디지털 루트 값이 동일, 단어와 다시 계산 모두에서 가장 높은 값 문자의 모든 인스턴스를 제거하여 단어를 단축.
- 승자가 있거나 단어 중 하나에 하나의 문자 만 남아 있거나 문자가 남아 있지 않을 때까지 1 단계와 2 단계를 반복하십시오 .
- 는 IF 디지털 루트 값이 단축 처리를 거쳐 동일, 긴 단어가 승자가된다.
- 단어의 길이가 같고 단축 과정을 거친 후 승자가 없으면 승자가 선언되지 않습니다.
특별 규칙 :
- 디지털 루트 자체를 계산할 때는 모듈러스를 사용할 수 없습니다. 다른 곳에서도 사용할 수 있습니다.
- 단어는 문장 부호, 공백 등이 아닌 대문자로만 구성되어 있다고 가정합니다.
입력
stdin (쉼표로 구분)을 통해 단어를 가져옵니다. 메소드 매개 변수 또는 원하는대로. 솔루션이나 코드에서 단어를 구문 분석하거나 준비하는 방법을 분명히하십시오.
산출
이기는 단어를 표시하십시오. 당첨자가 없으면 "STALEMATE"를 표시하십시오.
예 :
입력 : CAN, BAT
CAN = 18 = 9
BAT = 23 = 5
출력 : CAN
입력 : ZOO, NO
ZOO = 56 = 11 = 2
NO = 29 = 11 = 2
OO = 30 = 3
N = 14 = 5
출력 : NO
업데이트 : 쉼표로 구분 된 문자열로 단어와 함께 stdin을 사용하여 입력을 읽어야합니다.
업데이트 : 테스트 할 몇 가지 예가 추가되었습니다.
업데이트 : 넥타이의 경우 가장 높은 값의 문자 제거를 명확히했습니다. 단어 조건도 약간 변경됩니다. 단어가 한 글자 또는 0 자이면 짧아짐 프로세스가 중지됩니다