qhwh1029   1년 전

소중한 시간을 뺏어서 죄송합니다. 혹시 반례좀 찾아주실 수 있을까요? 아니면 로직 오류라던가.. 감사합니다.. 부족한 실력 양해 부탁드립니다..

seawon0808   1년 전

1. 알파벳 대소문자로 된 단어가 주어진다.

숫자가 들어올 일은 없으므로 14~18번째 줄은 필요 없습니다.

2. 배열, 문자열 초기화

배열이나 문자열은 0이 아닌 수로 초기화하지 않는 이상 뒤에 = {} 를 붙여 모두 0으로 초기화 할 수 있습니다. (예 abc[26] = {};)

21~24번째 줄은 필요 없고 문자열도 초기화 해주세요.

3. 72번째 줄 반복문 조건

i != temp_i 를 쓰면 i가 temp_i와 같아질 때 반복문이 종료되므로 75~76번째 줄이 필요가 없어집니다.

하지만 이 반복문의 목적은 배열의 모든 값을 검사하려는 것이므로 75~76번째 줄을 지우지 마시고 72번째 줄 반복문 조건에서 i != temp_i를 빼주세요.

4. 입력이 1글자일 때

입력이 1글자일 때는 a 빼고 모두 ? 가 출력됩니다.

예를 들어 b 가 입력이면 abc[1] 은 1이 되지만 입력이 1글자일 때는 temp_i 를 0으로 설정해 두셨으므로 a 이외의 1글자 입력이 들어오면 abc[temp_i] 는 0이 되므로 eq 값에 이상이 생깁니다.

저도 지금 저녁 먹으러 가야되고 4번은 제가 실수한 부분이 있을 수도 있겠네요.

qhwh1029   1년 전

아이쿠. 제가 정신이 없었나봅니다. seawon0808님이 말씀하신 것처럼 

if (ch[1] == 0)
{
temp_i = 0;
break;
}

60 ~ 64라인이 문제가 있었네요. 저걸 왜 넣은건지... 제가 하고도 이해가 안되네요

감사합니다!!!!! 좋은 저녁 보내세요!!!

seawon0808   1년 전

https://www.acmicpc.net/source...

에서 5번째 줄을 int N, abc[26] = {}, max; 로 바꾸고 9~12번째 줄은 빼도 됩니다.

qhwh1029   1년 전

방금 수정해서 다시 제출했습니다! 그렇게 해도 초기화 되는걸 이제야 알았습니다.. 감사합니다!

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