본문 바로가기

공부/오늘의 코딩

[문자열 처리] 1152번, 단어 수 세기

/*
주의 사항
(1) 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
(2) 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
(3) 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다.
*/

1. 풀이

(1) 공백을 찾으면 되었던 문제.

"apple fine apple"도 결과는 3

"로직 (1) : 단어 3개 사이에는 공백이 2개이므로", 공백 + 1 = 결과값

 

(2) 문제에서 나올 수 있는 입력 케이스,

  • case1 : 공백
  • case2 : 공백 + {단어 N}
  • case3 : 공백 + {단어 N} + 공백
  • case4 : {단어 N}

단어가 3개라서 공백이 2개라는 로직은 case4번만 해결가능.

나머지 case1~3 케이스를 처리하기 위한 예외처리 필요했음.


"로직 (2) 양끝 공백은 무시한다"

입력[0], 입력[입력 size - 1]이 공백이면 로직(1)에서 센 결과를 -1 만큼 빼준다.

 

2. github코드