some256   7년 전

이 문제의 함정은 공백이라고 생각됩니다. 제가 생각하기에 공백이 중요한 역할을 하는 경우는 다음과 같습니다

  1. 라인 시작부터 공백이 나오거나 e.g     ab c
  2. 중간에 공백이 나오거나 e.g a bc     d
  3. 라인 마지막에 공백이 많이 나오거나 e.g a  b  d              (마지막에 공백 길음)

위 세 가지 경우를 염두하여 제가 떠올린 단어를 세는 방법은 다음과 같습니다.

우선 아래의 절차를 D(L) 이라고 부릅시다. 여기에서 N 은 단어의 갯수, B 는 F, L 은 하나의 문자입니다.

  1. L 이 공백이 아닌 문자라면 B 를 T 로 만든다.
  2. L 이 공백이고, B = T 라면 N 을 1 더하고 B = F 로 만든다.
  3. 위 두 경우가 아니라면 아무 동작도 수행하지 않는다.

입력 문자열 각각의 문자 L 에 대하여 D(L) 을 실행합니다. "aa bb" 와 같이 끝나는 문자는 마지막 bb 를 세지 못하기 떄문에 D(' ') 을 한 번 더 실행해 줍니다.

위 방법에서 무엇이 틀린건가요?

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