본문 바로가기
Programming Solve/BOJ

BOJ 6438 - Reverse Text / C++

by msm1029 2022. 2. 20.
반응형

문제 링크 : https://www.acmicpc.net/problem/6438

 

6438번: Reverse Text

In most languages, text is written from left to right. However, there are other languages where text is read and written from right to left. As a first step towards a program that automatically translates from a left-to-right language into a right-to-left

www.acmicpc.net

 

문제 풀이

투 포인터 알고리즘을 이용하여 0번째 인덱스와 마지막 인덱스를 차례대로 바꿔가며 문자열을 바꿔준다.

공백 포함 문자열을 입력받기 위해 getline을 사용하였고 첫 번째 문자열의 수를 입력받을 때 cin을 사용하면 개행문자 '\n'이 들어가있기 때문에 cin.ignore()로 제거해준다.

 

소스 코드

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main(){
    int n;
    cin >> n;
    cin.ignore();

    for(int i=0; i<n; i++){
        string s;
        getline(cin, s);

        int st = 0, en = s.size() - 1;
        while(st < en) {
            char tmp = s[st];
            s[st] = s[en];
            s[en] = tmp;

            st++;
            en--;
        }

        cout << s << '\n';
    }
}
반응형

'Programming Solve > BOJ' 카테고리의 다른 글

BOJ 2003 - 수들의 합 2 / C++  (0) 2022.02.21
BOJ 2559 - 수열 / C++  (0) 2022.02.20
BOJ 2667 - 단지 번호 붙이기 / C++  (0) 2022.02.13
BOJ 1697 - 숨바꼭질 / C++  (0) 2022.02.12
BOJ 1260 - DFS와 BFS / C++  (0) 2022.02.10