데일리 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;
}