본문 바로가기
Develop/백준 (Cpp)

[백준] 3181번 : 줄임말 만들기 (C++)

by Tarra 2023. 2. 12.

3181번 : 줄임말 만들기


문제 )

꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다.

하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은 정확히 한칸의 공백으로 구분이 된다. 줄임말을 만들때는 각 단어의 앞글자를 따서 만들어지는데 다음의 단어들은 쓸모없는 단어들이므로 무시한다.

'i', 'pa', 'te', 'ni', 'niti', 'a', 'ali', 'nego', 'no', 'ili'.

하지만 이 단어들이 하려는 말의 맨 앞에 올경우 매우 중요하다고 판단되어 무시하면 안되고 줄임말에 포함하여야 한다.

줄임말을 만들기도 귀찮아진 꿍을 위해 줄임말을 만들어주는 프로그램을 작성하라.

단, 줄임말은 모두 대문자로만 이루어져있다.

 

 

입력 :

입력은 유일하게 한 줄만 주어지며 하려는 말이 포함되어 있다.

문장은 알파벳 소문자와 공백으로만 이루어져 있다.

문장의 최대길이는 100이다.

 

 

 

출력 :

만들어진 줄임말을 출력하라.

 

 

 

 

 

풀이)

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
50
51
52
53
54
#include <iostream>
#include <string>
 
using namespace std;
 
void checking(string& answer,  string &word) {
    if (word == "i" || word == "pa" || word == "te" || word == "ni" || word == "niti" ||
        word == "a" || word == "ali" || word == "nego" || word == "no" || word == "ili")
    {}
    else {
        answer += toupper(word[0]);
    }
}
 
int main()
{
    string sentence;
    getline(cin, sentence);
 
    // 공백 개수 
    int space = 0;
    // 답
    string answer = "";
 
    // 단어를 쪼개기 위해서 word 초기화
    string word = "";
    int len = sentence.length();
    for (int i = 0; i <= len; i++) {
 
        // 문장의 끝에 도달했거나 공백을 만났을 때
        if (i == len || sentence[i] == ' ') {
            // 첫 공백이라면 무조건 줄임말 포함
            if (space == 0) {
                answer += toupper(word[0]);
            }
            // 쓸모없는 단어 체크
            else {
                checking(answer, word);
            }
 
            // 공백을 만났으므로 word 초기화
            word = "";
            space++;
        }
        else {
            word += sentence[i];
        }
    }
 
    cout << answer;
 
    return 0;
}
 
cs

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

 

3181번: 줄임말 만들기

꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다. 하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은

www.acmicpc.net