문자열 입력받은 뒤, 문자열 전체를 배열로 돌려서 string[i] 의 알파벳이 대문자라면 첫번째 if문을 패스합니다. 소문자라면 대문자로 바꿔주고 ( string[i] -=32 ) 이 알파벳이 사용된 횟수를 max변수와 비교하여 최대값을 찾습니다. ( if문에서 ++arr[string[i]-65] > max ) max_ch는 가장많이 나온 알파벳을 저장.
그 다음 for문은 최대값이 중복되는지 비교합니다. max_ch-65 != i 는 가장많이 나온 알파벳의 인덱스를 비교에서 제외 / max==arr[i] 는 가장많이 나온 횟수와 같은 값이 다른 알파벳에도 있는지 비교하는 항목. 이 부분에서 만약 해당하는 값이 나온다면 ? 를 출력하고 종료. 해당하는게 없다면 max_ch를 출력.
dltpt99 4년 전
전체 매커니즘은
문자열 입력받은 뒤, 문자열 전체를 배열로 돌려서 string[i] 의 알파벳이 대문자라면 첫번째 if문을 패스합니다. 소문자라면 대문자로 바꿔주고 ( string[i] -=32 ) 이 알파벳이 사용된 횟수를 max변수와 비교하여 최대값을 찾습니다. ( if문에서 ++arr[string[i]-65] > max ) max_ch는 가장많이 나온 알파벳을 저장.
그 다음 for문은 최대값이 중복되는지 비교합니다. max_ch-65 != i 는 가장많이 나온 알파벳의 인덱스를 비교에서 제외 / max==arr[i] 는 가장많이 나온 횟수와 같은 값이 다른 알파벳에도 있는지 비교하는 항목. 이 부분에서 만약 해당하는 값이 나온다면 ? 를 출력하고 종료. 해당하는게 없다면 max_ch를 출력.
제가 잘못 구성한 부분이나, 반례가 궁금합니다.