memset 함수의 인자는 순서대로 memset(메모리 주소, 값, 범위) 입니다.
그런데 8번라인의 char 배열 memset은 char형 1개당 크기가 1바이트이므로 101로 범위를 잡아줘도 되지만,
9번라인의 int배열 memset은 int형 1개당 크기가 4바이트이므로 26이 아닌 26*4로 초기화해주셔야 합니다.
(실제로 해당 int배열 값을 반복문을 통해 확인해보면 0으로 제대로 초기화가 되지 않고있습니다.)
따라서 9번부분을
memset(alpha, 0, 26*sizeof(int));
와 같이 수정해주셔야 합니다..이것만 고치고 제출하니 AC 뜨네요
p.s. 반복문 내에서 strlen(str)함수를 사용하셨는데 이는 반복문이 1번 돌을 때 마다 스트링의 길이를 매번 체크하기때문에 시간이 훨씬 늘어납니다.
다른 변수에 따로 strlen(str)값을 저장하신 다음 사용하시는게 좋습니다.
cardbt 7년 전
안녕하세요~!
로직은 매우 간단하게 작성하였습니다.
문자열에서 현재 문자 != 이전 문자 일경우, 알파벳 배열의 수량을 증가시키고, 알파벳의 수량이 2개가 되면 판독 진행을 멈추게 하였습니다.
판독이 끝까지 이뤄지면 그룹이라고 처리하여 결과를 도출하는 방식입니다.
틀린만한 부분이 도무지 보이지 않는데 틀렸습니다가 나오네요.
제 3자의 눈이 필요한 시점입니다 ㅠㅠ
한번 봐주십시요.
감사합니다.