scannner 의 getNext() 로 토큰을 읽어오면,
여러 줄 입력에 대해서도 처리가 가능하고 한줄을 읽어서 split 할 필요가 없습니다.
여러줄을 입력받는 경우에 복잡도를 계산해 보면,
현재 소스의 경우, 문장을 읽기 위해서 문자열을 스캔하고, 그 문자열을 또 스캔(split) 해야 하므로 O = N^2 이 나오며,
getNext() 를 사용하는 경우 문자열 스캔을 1회만 하면 되므로 O = N 이 나옵니다.
복잡도 계산은 참고만 하세요. 정확한 것은 라이브러리 소스를 까봐야 정확히 알 수 있습니다.
댓글 감사합니다. 해당 문제에서 "영어 대소문자와 띄어쓰기만으로 이루어진 문장이 주어진다" 라는 문제에 대한 설명이 있어서 문자열은 1개의 라인만 주어진다고 가정하고 문제를 풀었습니다. 만약 말씀하신것처럼 여러 라인의 경우에는 라인별로 읽는것보다는 getNext()함수를 이용해서 문자열을 저장하지않고 읽힌값의 길이가 0이 아닌 경우에 카운트 하는게 split등을 이용해서 푸는것보다는 훨씬 속도가 빠르겠네요 의견 & 보팅 정말 감사드립니다. ㅎㅎ 저도 공부하면서 문제를 풀기때문에 부족한게 많습니다. 혹시 나중에도 소스에 의문점이나 다른의견 주시면 전부 읽어보고 피드백을 꼭드리겠습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit