abc def geg a
이런 문자열에서 답이 틀릴 것 같습니다.
1152번 - 단어의 개수
답변 감사합니다. 주신 테스트케이스는 4가 출력되는데 정답이라 생각합니다 ㅜㅜ 어떤 케이스에서 틀렸는지 감이 안오네요
fgets가 개행을 포함하기때문에
abc엔터를치면 길이가 4가되더라구요
그래서 실제 필요한 인덱스는 0 1 2 즉 abc니까 len-1 즉 3까지로 보았습니다 만약 len까지 두면 엔터문자도 처리하지않을까요? 답변감사합니다! 진짜 감사합니다
세이코님 답변 정말 감사합니다. 진심으로 감사합니다
말씀하신대로 for문을 수정하여 제출해보겠습니다. 감사합니다 ㅠ
감사합니다 for에서 while로 고친 후, 널문자까지 탐색을 시도했더니 성공했습니다.
예제 케이스도 비주얼에서 7이 출력되었는데(답은 6) 채점할때는 틀린 곳 없이 되었습니다 ㅎㅎ
감사합니다
댓글을 작성하려면 로그인해야 합니다.
hometowntree 6년 전
#include <cstdio>
#include <cstring>
#include <stack>
using namespace std;
char str[1111115];
stack <char> st;
int main()
{
int i = 0, cnt = 0, len, flag;
fgets(str, 1111115, stdin);
len = strlen(str);
for (i = 0; i < len-1; i++)
{
flag = 0;
if (str[i]>=65 && str[i]<=90) st.push(str[i]);
if (str[i] >= 97 && str[i] <= 122) st.push(str[i]);
if (str[i] == ' ') {
while (!st.empty()) {
st.pop();
flag = 1;
}
if (flag == 1) cnt++;
}
}
if (!st.empty()) cnt++;
printf("%d", cnt);
return 0;
}
게시판에 있는 TC모두 다 통과되는데 91%에서 자꾸 틀렸다고 하네요. 고수님들 도움좀 부탁드립니다 ㅜㅜ