문제
창영이는 요즘 춤을 배우고 있다. 창영이는 다음과 같은 규칙을 따라서 춤을 추어야 한다.
dip은 jiggle을 춘 다음이나 다다음, 또는 twirl을 추기 전에 출 수 있다. 예를 들면 다음과 같다.
...jiggle dip...
...jiggle stomp dip...
...dip twirl...
모든 춤은 clap stomp clap으로 끝나야 한다.
만약 twirl을 췄다면, hop도 춰야한다.
jiggle로 춤을 시작할 수 없다.
반드시 dip을 춰야 한다.
창영이가 춘 춤이 주어졌을 때, 위의 규칙을 지켰는지 아닌지를 알아내는 프로그램을 작성하시오.
출력
창영이의 춤이 규칙을 모두 지켰다면, "form ok: "를 출력하고 입력으로 주어진 춤을 출력한다.
창영이의 춤이 규칙을 1개만 어겼다면, "form error K: "를 출력하고 입력으로 주어진 춤을 출력한다. 여기서 K는 창영이가 어긴 규칙의 번호이다.
창영이의 춤이 규칙을 여러개 어겼다면, "form errors K(1), K(2), ..., K(N-1) and K(N): "을 출력하고 입력으로 주어진 춤을 출력한다. K(i)는 창영이가 어긴 규칙의 번호이고, 오름차순이다.
창영이가 1번 규칙을 어겼다면, 입력으로 주어진 춤을 출력할 때, 규칙에 어긋난 dip을 대문자로 출력한다.
예제 출력 1
복사
form ok: dip twirl hop jiggle hop hop clap stomp clap
form error 1: DIP hop jiggle hop hop clap stomp clap
form error 2: dip twirl hop jiggle hop hop clap clap stomp
form error 4: jiggle dip twirl hop jiggle hop hop clap stomp clap
form errors 2 and 4: jiggle dip
form errors 2, 4 and 5: jiggle
form error 1: dip twirl hop DIP jiggle hop dip hop clap stomp clap
W3sicHJvYmxlbV9pZCI6IjQ4MzYiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWNkYTQiLCJkZXNjcmlwdGlvbiI6IjxwPlx1Y2MzZFx1YzYwMVx1Yzc3NFx1YjI5NCBcdWM2OTRcdWM5OTggXHVjZGE0XHVjNzQ0IFx1YmMzMFx1YzZiMFx1YWNlMCBcdWM3ODhcdWIyZTQuIFx1Y2MzZFx1YzYwMVx1Yzc3NFx1YjI5NCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzQwIFx1YWRkY1x1Y2U1OVx1Yzc0NCBcdWI1MzBcdWI3N2NcdWMxMWMgXHVjZGE0XHVjNzQ0IFx1Y2Q5NFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+ZGlwXHVjNzQwIGppZ2dsZVx1Yzc0NCBcdWNkOTggXHViMmU0XHVjNzRjXHVjNzc0XHViMDk4IFx1YjJlNFx1YjJlNFx1Yzc0YywgXHViNjEwXHViMjk0IHR3aXJsXHVjNzQ0IFx1Y2Q5NFx1YWUzMCBcdWM4MDRcdWM1ZDAgXHVjZDljIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzYwOFx1Yjk3YyBcdWI0ZTRcdWJhNzQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNC5cclxuXHQ8dWw+XHJcblx0XHQ8bGk+Li4uamlnZ2xlIGRpcC4uLjxcL2xpPlxyXG5cdFx0PGxpPi4uLmppZ2dsZSBzdG9tcCBkaXAuLi48XC9saT5cclxuXHRcdDxsaT4uLi5kaXAgdHdpcmwuLi48XC9saT5cclxuXHQ8XC91bD5cclxuXHQ8XC9saT5cclxuXHQ8bGk+XHViYWE4XHViNGUwIFx1Y2RhNFx1Yzc0MCBjbGFwIHN0b21wIGNsYXBcdWM3M2NcdWI4NWMgXHViMDVkXHViMDk4XHVjNTdjIFx1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHViOWNjXHVjNTdkIHR3aXJsXHVjNzQ0IFx1Y2RjNFx1YjJlNFx1YmE3NCwgaG9wXHViM2M0IFx1Y2RiMFx1YzU3Y1x1ZDU1Y1x1YjJlNC48XC9saT5cclxuXHQ8bGk+amlnZ2xlXHViODVjIFx1Y2RhNFx1Yzc0NCBcdWMyZGNcdWM3OTFcdWQ1NjAgXHVjMjE4IFx1YzVjNlx1YjJlNC48XC9saT5cclxuXHQ8bGk+XHViYzE4XHViNGRjXHVjMmRjIGRpcFx1Yzc0NCBcdWNkYjBcdWM1N2MgXHVkNTVjXHViMmU0LjxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPlx1Y2MzZFx1YzYwMVx1Yzc3NFx1YWMwMCBcdWNkOTggXHVjZGE0XHVjNzc0IFx1YzhmY1x1YzViNFx1Yzg0Y1x1Yzc0NCBcdWI1NGMsIFx1YzcwNFx1Yzc1OCBcdWFkZGNcdWNlNTlcdWM3NDQgXHVjOWMwXHVjZjMwXHViMjk0XHVjOWMwIFx1YzU0NFx1YjJjY1x1YzljMFx1Yjk3YyBcdWM1NGNcdWM1NDRcdWIwYjRcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Yzc4NVx1YjgyNVx1Yzc0MCBcdWM1ZWNcdWI3ZWNcdWFjMWNcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LiBcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YjI5NCBcdWQ1NWMgXHVjOTA0XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWM3M2NcdWJhNzAsIFx1Y2MzZFx1YzYwMVx1Yzc3NFx1YWMwMCBcdWNkOTggXHVjZGE0XHVjNzc0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVhYzAxIFx1Y2RhNFx1Yzc0MCAxMDAwXHVjMmE0XHVkMTVkXHVjNzQ0IFx1YjExOFx1YzljMCBcdWM1NGFcdWIyOTRcdWIyZTQuIFx1YWMwMSBcdWMyYTRcdWQxNWQgXHVjNTRjXHVkMzBjXHViY2IzIFx1YzE4Y1x1YmIzOFx1Yzc5MFx1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHVhY2UwLCAxMDBcdWFlMDBcdWM3OTBcdWI5N2MgXHViMTE4XHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWNjM2RcdWM2MDFcdWM3NzRcdWM3NTggXHVjZGE0XHVjNzc0IFx1YWRkY1x1Y2U1OVx1Yzc0NCBcdWJhYThcdWI0NTAgXHVjOWMwXHVjZjMwXHViMmU0XHViYTc0LCAmcXVvdDtmb3JtIG9rOiAmcXVvdDtcdWI5N2MgXHVjZDljXHViODI1XHVkNTU4XHVhY2UwIFx1Yzc4NVx1YjgyNVx1YzczY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzQgXHVjZGE0XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjYzNkXHVjNjAxXHVjNzc0XHVjNzU4IFx1Y2RhNFx1Yzc3NCBcdWFkZGNcdWNlNTlcdWM3NDQgMVx1YWMxY1x1YjljYyBcdWM1YjRcdWFjYmNcdWIyZTRcdWJhNzQsICZxdW90O2Zvcm0gZXJyb3IgSzogJnF1b3Q7XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YWNlMCBcdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0IFx1Y2RhNFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YzVlY1x1YWUzMFx1YzExYyBLXHViMjk0IFx1Y2MzZFx1YzYwMVx1Yzc3NFx1YWMwMCBcdWM1YjRcdWFlMzQgXHVhZGRjXHVjZTU5XHVjNzU4IFx1YmM4OFx1ZDYzOFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjYzNkXHVjNjAxXHVjNzc0XHVjNzU4IFx1Y2RhNFx1Yzc3NCBcdWFkZGNcdWNlNTlcdWM3NDQgXHVjNWVjXHViN2VjXHVhYzFjIFx1YzViNFx1YWNiY1x1YjJlNFx1YmE3NCwgJnF1b3Q7Zm9ybSBlcnJvcnMgSygxKSwgSygyKSwgLi4uLCBLKE4tMSkgYW5kIEsoTik6ICZxdW90O1x1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NThcdWFjZTAgXHVjNzg1XHViODI1XHVjNzNjXHViODVjIFx1YzhmY1x1YzViNFx1YzljNCBcdWNkYTRcdWM3NDQgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LiBLKGkpXHViMjk0IFx1Y2MzZFx1YzYwMVx1Yzc3NFx1YWMwMCBcdWM1YjRcdWFlMzQgXHVhZGRjXHVjZTU5XHVjNzU4IFx1YmM4OFx1ZDYzOFx1Yzc3NFx1YWNlMCwgXHVjNjI0XHViOTg0XHVjYzI4XHVjMjFjXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWNjM2RcdWM2MDFcdWM3NzRcdWFjMDAgMVx1YmM4OCBcdWFkZGNcdWNlNTlcdWM3NDQgXHVjNWI0XHVhY2JjXHViMmU0XHViYTc0LCBcdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWM0IFx1Y2RhNFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NjAgXHViNTRjLCBcdWFkZGNcdWNlNTlcdWM1ZDAgXHVjNWI0XHVhZTBiXHViMDljIGRpcFx1Yzc0NCBcdWIzMDBcdWJiMzhcdWM3OTBcdWI4NWMgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6IjQ4MzYiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJEYW5jZSIsImRlc2NyaXB0aW9uIjoiPHA+Rm9yIGEgZGFuY2UgdG8gYmUgcHJvcGVyIGluIHRoZSBBbHRlcmVkIEN1bHR1cmUgb2YgTWFjaGluZW1hLCBpdCBtdXN0IGFiaWRlIGJ5IHRoZSBmb2xsb3dpbmcgcnVsZXM6Jm5ic3A7PFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+QSBkaXAgY2FuIG9ubHkgYXBwZWFyIDEgb3IgMiBzdGVwcyBhZnRlciBhIGppZ2dsZSwgb3IgYmVmb3JlIGEgdHdpcmwsIGFzIGluOiZuYnNwO1xyXG5cdDx1bD5cclxuXHRcdDxsaT4uLi5qaWdnbGUgZGlwLi4uJm5ic3A7PFwvbGk+XHJcblx0XHQ8bGk+Li4uamlnZ2xlIHN0b21wIGRpcC4uLiZuYnNwOzxcL2xpPlxyXG5cdFx0PGxpPi4uLmRpcCB0d2lybC4uLiZuYnNwOzxcL2xpPlxyXG5cdDxcL3VsPlxyXG5cdDxcL2xpPlxyXG5cdDxsaT5BbGwgZGFuY2VzIGVuZCB3aXRoIGEgY2xhcCBzdG9tcCBjbGFwLiZuYnNwOzxcL2xpPlxyXG5cdDxsaT5JZiBhIGRhbmNlIGNvbnRhaW5zIGEgdHdpcmwsIGl0IG11c3QgaGF2ZSBhIGhvcC4mbmJzcDs8XC9saT5cclxuXHQ8bGk+Tm8gZGFuY2UgY2FuIHN0YXJ0IHdpdGggYSBqaWdnbGUuJm5ic3A7PFwvbGk+XHJcblx0PGxpPkFsbCBkYW5jZXMgbXVzdCBoYXZlIGEgZGlwLiZuYnNwOzxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPkFzIGluc3RydWN0b3IgYXQgYSBkYW5jZSBjb21wb3NpdGlvbiBzY2hvb2wsIHlvdSBtdXN0IGdyYWRlIG1hbnkgZnJlc2htYW4gYXR0ZW1wdHMgYXQgY29tcG9zaW5nIGRhbmNlcy4gWW91IGRlY2lkZSB0byBtYWtlIGFuIGF1dG9tYXRpYyBncmFkZXIgdGhhdCBjYW4gY2hlY2sgYWdhaW5zdCB0aGVzZSBydWxlcy48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBpbnB1dCBjb25zaXN0cyBvZiBhIG51bWJlciBvZiBkYW5jZXMsIG9uZSBwZXIgbGluZS4gRWFjaCBkYW5jZSBoYXMgYSBtYXhpbXVtIG9mIDEwMDAgc3RlcHMuIEVhY2ggc3RlcCBpcyBzZXBhcmF0ZWQgYnkgYSBzaW5nbGUgc3BhY2UsIGFuZCBhbGwgc3RlcHMgYXJlIGxvd2VyY2FzZSBhbHBoYWJldGljIHdvcmRzIGF0IG1vc3QgMTAwIGxldHRlcnMgbG9uZy48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5JZiBhIGRhbmNlIGluIHRoZSBpbnB1dCBoYXMgbm8gbWlzdGFrZXMsIHRoZW4gdGhlIG91dHB1dCBzaG91bGQgY29udGFpbiB0aGUgd29yZHMgJnF1b3Q7Zm9ybSBvazogJnF1b3Q7IGZvbGxvd2VkIGJ5IHRoZSBvcmlnaW5hbCBjb21wb3NpdGlvbi48XC9wPlxyXG5cclxuPHA+SWYgYSBkYW5jZSBoYXMgYSBzaW5nbGUgdHlwZSBvZiBmb3JtIGVycm9yLCB0aGVuIHRoZSBvdXRwdXQgc2hvdWxkIGNvbnRhaW4gdGhlIHdvcmRzICZxdW90O2Zvcm0gZXJyb3IgSzogJnF1b3Q7IHdoZXJlIEsgaXMgdGhlIHJ1bGUgd2hpY2ggZmFpbGVkLCBmb2xsb3dlZCBieSB0aGUgY29tcG9zaXRpb24uPFwvcD5cclxuXHJcbjxwPklmIGEgZGFuY2UgaGFzIG11bHRpcGxlIHR5cGVzIG9mIGZvcm0gZXJyb3JzLCB0aGVuIHRoZSBvdXRwdXQgc2hvdWxkIGNvbnRhaW4gdGhlIGVycm9ycyBhcyBhIGNvbW1hIHNlcGFyYXRlZCBjbGF1c2UsIGFzIGluICZxdW90O2Zvcm0gZXJyb3JzIEsoMSksIEsoMiksIC4uLiwgSyhOLTEpIGFuZCBLKE4pOiAmcXVvdDsgd2hlcmUgdGhlIGZvcm0gZXJyb3JzIGFyZSBpbiBpbmNyZWFzaW5nIG9yZGVyLCBmb2xsb3dlZCBieSB0aGUgY29tcG9zaXRpb24uPFwvcD5cclxuXHJcbjxwPklmIGEgZGFuY2UgaGFzIGZvcm0gZXJyb3IgMSwgZXZlcnkgZGlwIGluIHRoZSBkYW5jZSB0aGF0IHZpb2xhdGVzIHJ1bGUgMSBzaG91bGQgYmUgcHJpbnRlZCBpbiB1cHBlciBjYXNlLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=