데일리 codeup/문자열

문자열 밀기_220716

hayo_su 2022. 7. 16. 15:13

문자열 밀기

문자열이 하나 주어지면, 왼쪽으로 한 칸 shift 한 이후의 결과를 저장한 뒤 출력하는 프로그램을 작성해보세요.

#include <iostream>
#include <string>
using namespace std;
int main(){
    string s,t;
    cin >> s;
    t = s.substr(1,s.length()-1)+ s[0];
    cout<<t;
    return 0;
}

문자열 돌리기

알파벳으로 이루어진 문자열이 주어지면, 문자열의 길이를 L이라고 했을 때 오른쪽으로 한 글자씩 밀어서 출력하는 것을 L회 반복하는 프로그램을 작성해보세요.

예) ABCD가 주어지는 경우

ABCD
DABC
CDAB
BCDA
ABCD
#include <iostream>
#include <string>
using namespace std;
int main(){
    string s;
    cin >> s;
    cout << s << endl;
    for(int i=0;i<s.length();i++){
        s = s[s.length()-1] + s.substr(0,s.length()-1);
        cout<< s << endl;
    }
    return 0;
}

문자열 한 칸씩 밀어내며 뒤집기

문자열 한 개 입력으로 주어지고 q개의 요청이 주어지면, 각 요청을 수행한 결과를 모두 출력하는 코드를 작성해보세요. 요청의 종류에는 아래의 세 가지가 있습니다.

1.가장 앞에 있는 문자를 제외한 나머지 문자를 한 칸씩 앞으로 당기고 가장 앞에 있던 문자를 가장 뒤로 옮깁니다.

2.가장 뒤에 있는 문자를 제외한 나머지 문자를 한 칸씩 뒤로 밀고 가장 뒤에 있던 문자를 가장 앞으로 옮깁니다.

3.문자열을 좌우로 뒤집습니다.

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;
int main(){
    string s;
    int q,req;
    cin >> s >> q;
    for(int i=0;i<q;i++){
        cin>>req;
        if(req == 1)    s = s.substr(1,s.length()-1) + s[0];//요청1
        else if(req == 2)s = s[s.length()-1] + s.substr(0,s.length()-1); //요청2
        else    reverse(s.begin(), s.end());// 요청3
        cout<< s << endl;
    }
    return 0;
}

규칙에 따라 밀기

문자열 A가 주어졌을 때, 명령에 따라 문자열 A를 민 결과를 출력하는 프로그램을 작성해보세요.

명령은 L 또는 R 로 이루어진 명령 문자열로 주어지고, 명령에 따라 순서대로 다음을 반복합니다.

  • L일 때는 좌측으로 한 칸 밀고, R일 때는 우측으로 한 칸 미는 것을 진행합니다.
#include <iostream>
#include <string>
using namespace std;
int main(){
    string s, req;
    cin >> s >> req;
    for(int i=0;i<req.length();i++){
        if(req[i] == 'L')   s = s.substr(1,s.length()-1) + s[0];
        else    s = s[s.length()-1] + s.substr(0,s.length()-1);
    }
    cout << s;
    return 0;
}