doubler   2년 전

우선적으로 문제를 입력받는 경우, 저는 아래와 같은 경우로 씁니다만 끝나는 시점이 정확히 어떻게 끝내야 하는지 잘 모르곘군요. ㅠㅠ 

한줄씩 입력받는 것이 아닌 문장이 끝나는 시점에서 출력이 나타나야 하는데

제 코드는 입력을 다하고 나서 이후에 엔터를 한번 더 입력해야 결과가 나옵니다.. 조언좀 주시면 감사하겠습니다.

djm03178   2년 전

입력에는 문제가 없습니다. EOF를 만나면 BufferedReader.readLine()이 null을 반환하기 때문에 26번째 줄은 올바른 탈출법입니다.

틀린 부분은 정렬입니다.

ab

doubler   2년 전

빠른 피드백 감사드립니다.

저도 코드를 자세히 보니 카운트는 내림차순으로 해놓고 알파벳은 오름차순으로 해야하는데, 동일하게 내림차순으로 했더군요. 

그래서 코드를 고쳐서 수정했더니 좀 더 높은 퍼센트까지 가다가 다른 테케에서 틀렸네요 ㅠㅠ 답변 감사드립니다.

doubler   2년 전

와 해결했습니다.

보니깐 equals() 함수로 동치성 검사로 "" 을 넣어서 문제가 되었군요 ㅠㅠ 해결되었습니다.

persona73   2년 전

equals()함수 동치성 검사 ""를 어떻게 해결했는지 알 수 있을까요?ㅠ

doubler   2년 전

26번째 라인에 보면, 저는 "".equals(line) 이라는 코드를 넣었는데 저 부분을 제거해주고

단순하게 if (line == null) break; 로 하였습니다. 추가로 75번째 라인을 살펴보면,

return String.valueOf(charCount.c).compareTo(String.valueOf(this.c)); 라고 저는 하였는데 저 부분은 사실상 내림차순의 형태입니다. 

문자는 알파벳순으로 출력해야하기 때문에 오름차순으로 바꾸어주어야 해서 아래와 같이 수정해주어야 합니다.

return String.valueOf(this.c).compareTo(String.valueOf(charCount.c)); compareTo 하는 내부 파라미터의 앞 뒤가 변경되어야 합니다.

1) if(line == null) 

2) this.c <--> charCount.c 

전 이렇게 수정하니 해결하였습니다.

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