leehey1682   2년 전

1. 소문자는 대문자로 변환합니다.

2. A =0, B=1, C=2 .. 로 idx값 잡아주고 입력받은 알파벳이 있으면 alph[idx] 값을 ++ 합니다.

3. 여태까지 가장 많이 나온 알파벳갯수를 max값으로 갱신시켜줍니다.

4. bool 값으로 같은 최대값이 있는지 확인 후 print


어느 예외가 있을까요 ㅠㅠ 자꾸 틀렸다고 나오는데..

혹시 이 알고리즘이 잘못 된건지 ㅠㅠ 도와주세요~!

nivea50   2년 전

가장 많이 사용한 알파벳이 2개이상인 경우를 판별하기위해 isSame변수를 선언하신거 같은데  22번째 줄 보시면 for문을 돌때마다 false로 초기화가 되네요.

AAAABBBBC 경우 마지막 B를 돌 때 기존의 MAX값(A의 개수) 4와 B의 개수 4가 같으므로 isSame이 true로 되지만 C를 돌때 다시 false로 초기화 되므로
결과는 ?가 아닌 A를 출력하게 되네요. 주석처리 추천.

그리고 문자열의 길이는 최대 1,000,000인데 
alph배열의 자료형이 char형이므로 127개가 넘으면 오버플로우가 일어나겠네요. 
예를 들어 A 128개, B 127개로 이루어진 문자열 경우 ?를 출력합니다. int형으로 바꾸시는 걸 추천.

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

leehey1682   2년 전

와 감사합니다! 수정후 해결했습니다^^ 

댓글을 작성하려면 로그인해야 합니다.