이 문제에서는 일련의 문자가 주어지고 두 개 이상의 문자가 연속적이면 한 줄에 함께 인쇄하는 방식으로 동일한 문자열을 인쇄해야 합니다. 그렇지 않으면 줄 바꿈을 사용하여 다른 줄로 인쇄하십시오.
개념을 더 잘 이해할 수 있도록 예를 들어 보겠습니다.
Input : abcxstk Output : abc x st k
설명 − abc 이후 순서대로 한 줄에 인쇄됩니다. 그런 다음 순서가 아닌 x가 나오므로 여기에 줄 바꿈을 추가합니다. 다음은 x가 있는 시퀀스가 아닌 s이므로 줄 바꿈을 추가합니다. 다음은 s가 순서대로 인쇄되어 있는 t입니다. 다음은 k가 t와 순서가 다르므로 줄 바꿈을 추가합니다.
여기에서 문자열에서 이전 요소가 있는 요소를 확인합니다. 순서대로 있으면 정상적으로 인쇄합니다. 그렇지 않으면 줄 바꿈으로 요소를 인쇄합니다.
예시
이제 이 논리를 기반으로 프로그램을 작성해 보겠습니다.
#include <iostream> using namespace std; int main(){ string str = "stukfrpq"; cout << str[0]; for (int i=1; str[i]!='\0'; i++){ if ((str[i] == str[i-1]+1) || (str[i] == str[i-1]-1)) cout << str[i]; else cout << "\n" << str[i];; } return 0; }
출력
stu k f r pq