반례입니다.
a
a의 앞과 뒤 모두 공백이 있을 경우, 위 프로그램은 '2'를 출력합니다.
1152번 - 단어의 개수
2가 나옵니다. 혹시 사용중인 ide에선 된다면, 해당 ide에선 뭔가 다른 부분이 있나봅니다.
보통 ideone에서 되면 백준에서도 ide별 차이 없이 되더라구요.
CLion에서도 해보니 2가 뜹니다.
긍까 위 코드로
' a' (공백 + a)는 1이 뜹니다.
' a '(공백 + a + 공백)은 2가 뜹니다.
기존로직이 잘 이해가 안되서 기본 틀만 짜두신걸로 쓰고, 로직은 좀 바꿔서 해봤습니다.
이렇게 해서 잘 통과되네요!
#include <stdio.h> int main(void) { char str[1000001]; int count = 0, result = 0; scanf("%[^\n]s", str); if (str[0] == ' ' && str[1] == '\0') { printf("0\n"); return 0; } if (str[0] == ' ') str[0] = 'a'; int cnt = 0; int idx = -1; while (str[++idx] != '\0') { if (str[idx] == ' ') cnt++; } if (str[idx-1] != ' ') cnt++; printf("%d\n", cnt); return 0; }
댓글을 작성하려면 로그인해야 합니다.
kissy527 2년 전
예제입력 과 출력이 다같은데 왜 틀렸는지 모르겠습니다
도와주세요..