ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 3181번: 줄임말 만들기
    문자열(String) 2018. 6. 13. 11:00
    반응형

    백준 온라인 저지(BOJ) 3181번 문제

    https://www.acmicpc.net/problem/3181



    1. 문제 요약

    입력 받는 문자열에서 공백과 문제에서 주어진 특정 단어를 제외하고 각 단어의 첫 글자를 대문자로 출력 하는 문제




    2. 알고리즘

    문자열을 입력 받는다.

    공백 단위로 문자열을 분리 한다.

    각 단어의 첫 글자를 대문자로 출력한다.


    3. 코드

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include <iostream>
    #include <algorithm> // min
    #include <functional>
    #include <math.h>
    #include <string>
    #include <string.h>
    #include <vector>
    #include <map>
    #include <sstream>
    #include <queue>
    using namespace std;
     
    void split(const string& str, const string& delim, vector<string>& parts) {
        size_t start, end = 0;
        while (end < str.size()) {
            start = end;
            while (start < str.size() && (delim.find(str[start]) != string::npos)) {
                start++;  // skip initial whitespace
            }
            end = start;
            while (end < str.size() && (delim.find(str[end]) == string::npos)) {
                end++// skip to end of word
            }
            if (end-start != 0) {  // just ignore zero-length strings.
                parts.push_back(string(str, start, end-start));
            }
        }
    }
     
    int main() {
     
        std::ios::sync_with_stdio(false); cin.tie(0);
     
        string s; 
        getline(cin, s);
     
        vector<string> arr;
        split(s, " ", arr);
     
        const int size = arr.size();
        if (size > 0)
            cout << (char)(arr[0][0- 32);
        
        for(int i = 1; i<size; i++) {
            if(arr[i] != "i" && arr[i] != "pa" && arr[i] != "te" && arr[i] != "ni" && arr[i] != "niti" && arr[i] != "a" && arr[i] != "ali" && arr[i] != "nego" && arr[i] != "no" && arr[i] != "ili")
                cout << (char)(arr[i][0- 32);
        }
        return 0;
    }
    cs


    반응형

    댓글

Designed by Tistory.