injoon2018   5년 전

3b01d958-bbdc-43ef-bd1e-c2912de0c6aa

또 어떤 반례가 있을까요. 현재까지 질문 게시판에 있는 반례는 다 통과했습니다.#include #include #include #include #include using namespace std; int main(void) { string sentence; getline(cin, sentence); int alphabet[26] = { 0 }; int temp[26] = { 0 }; for (int i = 0; sentence[i] !='\0'; i++) { if (sentence[i] != ' ') { alphabet[sentence[i] - 'a']++; temp[sentence[i] - 'a']++; } } sort(alphabet, alphabet + 26); for(int k = 0; k < 26; k++) { if (temp[k] == alphabet[25]) cout << char(k + 'a'); } system("pause"); return 0; }

jaehoo1   5년 전

  1. 예제가 안돌아 갑니다.   (https://ideone.com/eT5E3x)
  2. 첫째 줄에 가장 많이 나온 문자를 출력한다. 여러 개일 경우에는 알파벳 순으로 앞서는 것부터 모두 공백없이 출력한다.   (https://ideone.com/R4U4Ww)

injoon2018   5년 전

jaehoo1님 예제 입력할 때 저 각행들이 엔터로 구분되어져 있는건가요??

제가 비쥬얼 스튜디오로 돌릴 땐 a가 나오는데.. 저 사이트에서 다른 결과가 나온 것을 보니 입력 방식이 다른 것 같네요

injoon2018   5년 전

두 번째 예제 b b a a c 역시 비쥬얼 스튜디오에서 b (스페이스) b(스페이스).. 이런식으로 입력해서 됐는데 각각 엔터인 것인가요..?

jaehoo1   5년 전

네. stdin입력을 그대로 받습니다(저는 엔터로 입력했습니다)

https://ideone.com/

언어 설정을 C++14로 바꾸시고, 코드 복붙하신 다음

stdin에 입력을 넣고 실행(Ctrl+Enter)을 하시면

stdout을 보실수 있습니다

injoon2018   5년 전

저는 스페이스로 구분을 한다고 가정을 하고 코드를 작성했는데요 

엔터를 치면 널 문자가 생기지 않나요?? 

왜 다른 결과가 나오는지..

djm03178   5년 전

getline을 한 번만 했으니 가장 윗 줄만 받아지는 게 당연합니다. 이 문제는 한 줄만 입력을 받으면 안 되고, 입력 스트림의 끝이 나타날 때까지 반복해서 입력을 다 받아야 합니다. 어떻게 하는지는 다른 질문글들을 살펴보시면 좋을 것 같습니다.

djm03178   5년 전

입력 형식에 대해서는 문제 설명에 주어진 그대로, 예제에 주어진 그대로 읽어들일 수 있어야 됩니다. 지금의 입력 형식이 이상하니까 "내 입맛에 맞게 적당히 조절해도 되겠지" 같은 어떠한 가정도 해서는 안 됩니다.

injoon2018   5년 전

네 감사합니다 다시 시도해보겠습니다

injoon2018   5년 전

해결했습니다 감사합니다

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