단어의 개수(1152)
단어의 개수를 구하는 문제
문제
영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
예제 입력
예제 출력
예제 입력2
예제 출력2
예제 입력3
예제 출력3
한번 틀렸음 -> Scanner의 nextLine을 이용해서 입력받고 그것을 split을 활용해서 출력하는 방식을 채택해서 실행도 되는 것을 확인하고 제출했지만 틀렸다....
일단은 Scanner도 느리기도하고 그래서 BufferedReader을 사용하고, StringTokenizer을 사용해서 구현을 해 보았는데 맞았다!!!
그런데 왜일까... 첫 번째 방법도 결과는 나왔는데... 그래서 구글링해보니까 이렇게 문자열을 잘라서 하는 것은
문자열을 읽고 charAt을 통해서 공백을 검사
StringTokenizer을 사용하는 방법
이렇게 크게 2가지 방법을 이야기했었다
이 문제에서의 새로운 점은 countTokens() 함수를 사용해서 갯수를 출력할 수 있었다는 점
Last updated
Was this helpful?