문제 링크: https://www.acmicpc.net/problem/17413

 

이 문제는 문자열에서 '단어'만 찾아서 뒤집어서 출력하는 것이다. 문자열에는 태그와 단어가 섞여 있는데 태그는 그대로 놔두고 문자만 뒤집어야 한다. 기준은 문제에 나와 있으니 생략.

유한상태기계(FSM)를 사용해서 풀었다. 한 줄을 통째로 string에 저장한 뒤, 한 글자씩 iterate하며 상태를 변화시킨다. 각 상태는 3가지로 설정했다.

  • WAIT: 입력을 기다리는 상태. 문자 한개를 읽었을 때 WORD 또는 TAG로 감.
  • WORD: 문자열. 공백이 나오거나 '<' 가 나올 때까지 한 글자씩 버퍼에 역순으로 저장. 문자열이 끝나면 버퍼 출력.
  • TAG: 태그. '>'가 나올 때까지 버퍼에 저장. 태그가 끝나면 태그 출력.

 

 

반응형

'Online Judge > 백준' 카테고리의 다른 글

[백준][C++] 14500: 테트로미노  (0) 2020.03.26
[백준][C++] 3190: 뱀  (0) 2020.03.26
[백준][C++] 2615: 오목  (2) 2020.03.26
[백준][C++] 1939: 중량제한  (0) 2020.03.26
[백준][C++] 2312: 수 복원하기  (0) 2019.08.22
[백준][C++] 17413: 단어 뒤집기 2  (0) 2019.08.22