yottaqube   4년 전

계속 채점을 시작하마자마 "틀렸습니다"가 나오는데요,

로직의 어느 부분이 잘못되었는지를 모르겠네요. 

한번 살펴봐 주시면 감사하겠습니다.

로직은 다음과 같습니다.

입력받은 스트링을 한자씩 잘라서 0~25 까지의 배열(A~Z에 매칭)에 각각의 등장 횟수를 카운트해서 넣습니다.

개수가 들어가있는 배열을 돌면서 가장 큰값이 하나이면 그 값을 출력하고, 둘 이상이면 ?를 출력합니다.


제가 무엇을 놓치고 있을까요?

yottaqube   4년 전

방금 입력을 읽어오는 부분을 Scanner 에서 Reader 로 수정했더니 맞았습니다가 나오네요.

Scanner 를 쓰는것과 Reader 를 쓰는 부분에서 뭔가 차이가 있나 봅니다.


혹시 어떤 차이가 있는지 알 수 있을까요?

bupjae   4년 전

새로 만들어진 Scanner 의 split type 은 line, buffer size는 65536 byte 입니다.

이 설정에서는 (line terminator를 포함한) 한 줄의 길이가 65536 byte 를 넘어가면 입력 데이터를 제대로 처리할 수 없습니다.

  

sc.Scan() 을 하기 전에 sc.Buffer() 메소드를 이용해서 buffer size 를 재설정할 수 있습니다.

yottaqube   4년 전

뭔가 입력 길이에 문제가 있을듯 하다는 생각은 했는데 그런 세팅이 있었군요~

정말 감사합니다.

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