문제 링크: 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 |