본문 바로가기

Algorithm/String

(C++) - 백준(BOJ) 13163번 : 닉네임에 갓 붙이기

반응형

www.acmicpc.net/problem/13163

 

13163번: 닉네임에 갓 붙이기

첫 번째 줄에는 닉네임의 수 N(1 ≤ N ≤ 100)이 주어진다. 두 번째 줄부터 N개의 줄에는 음절 단위로 쪼갠 닉네임이 주어진다. 각 줄은 알파벳 소문자와 공백만으로 이루어지며, 쪼갠 닉네임의 총

www.acmicpc.net

간단한 문자열 처리 문제였습니다.

 

 

 

풀이방법

 1. cin은 '\n'를 포함해 버퍼에 넣기 때문에 처음 n을 입력받은 후 cin.clear()로 버퍼를 비워줍니다.

 2. 이후 사용하는 getline함수 또한 cin을 사용하기 때문에 ignore()함수를 이용해 개행문자를 무시해줍니다.

 3. 이후 첫 음절을 god으로 바꾼 후 나머지 문자를 띄어쓰기 없이 붙인 후 출력하시면 됩니다.

 

 

Code

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    cin.ignore();

    while(n--){
        string s;
        string ans="";
        int cnt = 0;
        cin.clear();
        getline(cin,s);

        for(int i = 0; i < s.size(); i++){
            
            string tmp = "";
            int j = i;
            while(s[j] != ' ' && j != s.size())
                tmp += s[j++];
            i = j;
            if(!cnt) {
                ans += "god";
                cnt = 1;
                continue;
            }else{
                ans += tmp;
            }
        }
        cout << ans <<'\n';
    }

}