ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JUNGOL...32
    일지 2020. 12. 12. 11:41

    Language_Code/문자열2/형성평가1


    문제                                            

    공백을 포함한 문자열을 입력받아 각 단어로 분리하여 문자열 배열에 저장한 후 입력순서의 반대 순서로 출력하는 프로그램을 작성하시오.

     

    문자열의 길이는 100자 이하이다.

     

    입력 예                                        

    C++ Programing jjang!!

     

    출력 예                                        

    162 32jjang!!
    Programing
    C++

     

    Hint!

    문장을 단어로 나누기


    FormativeString201.h

    #include <iostream>
    #include <string>
    #include <sstream>
    #include <vector>
    
    using std::string;
    using std::stringstream;
    using std::vector;

     

    FormativeString201.cpp

    void FormativeString201::Code()
    {
    	string str;
    
    	std::getline(std::cin, str);
    
    	string word;
    	vector<string> words;
    	for (stringstream ss{ str }; ss >> word;)
    	{
    		words.push_back(word);
    	}
    
    	for (int i = static_cast<int>(words.size()) - 1; i >= 0; i--)
    	{
    		std::cout << words[i] << '\n';
    	}
    }

     

    Language_Code/문자열2/형성평가2


    문제                                            

    "flower" "rose" "lily" "daffodil" "azalea" 5개의 단어를 초기화한 후 한 개의 문자를 입력받아서 입력받은 문자가 두 번째나 세 번째에 포함된 단어를 모두 출력하고 마지막 줄에 출력한 단어의 개수를 출력하는 프로그램을 작성하시오.

     

    해당되는 단어가 없으면 "0"만 첫 줄에 출력한다.

     

    입력 예                                        

    l

     

    출력 예                                        

    flower
    lily
    2


    FormativeString202.h

    #include <iostream>
    #include <string>
    
    using std::string;

     

    FormativeString202.cpp

    void FormativeString202::Code()
    {
    	string arr[]{ "flower", "rose", "lily", "daffodil", "azalea" };
    	
    	char ch;
    
    	std::cin >> ch;
    
    	int count{ 0 };
    
    	for (int i = 0; i < 5; i++)
    	{
    		if (arr[i][1] == ch || arr[i][2] == ch)
    		{
    			std::cout << arr[i] << '\n';
    
    			count++;
    		}
    	}
    
    	std::cout << count;
    }

     

    Language_Code/문자열2/형성평가3


    문제                                            

    단어를 입력받다가 "0"을 입력받으면 입력을 종료하고 그 때까지 입력받은 단어의 개수를 출력하고 홀수 번째 입력받은 단어를 한 줄에 1개씩 출력하는 프로그램을 작성하시오.


    단어의 개수는 50개를 넘지 않고, 단어의 길이는 100자 이하이다.

     

    입력 예                                        

    keyboard
    mouse
    monitor
    0

     

    출력 예                                        

    3
    keyboard
    monitor


    FormativeString203.h

    #include <iostream>
    #include <string>
    
    using std::string;

     

    FormativeString203.cpp

    void FormativeString203::Code()
    {
    	int count{ 0 };
    	string arr[50];
    
    	for (; count < 50; count++)
    	{
    		std::cin >> arr[count];
    
    		if (arr[count] == "0")
    		{
    			break;
    		}
    	}
    
    	std::cout << count << '\n';
    
    	for (int i = 0; i < count; i += 2)
    	{
    		std::cout << arr[i] << '\n';
    	}
    }

     

    Language_Code/문자열2/형성평가4


    문제                                            

    10 이하의 정수 n을 입력받고 n개의 문자열을 입력받은 후 그 크기를 비교하여 가장 작은 문자열부터 차례로 출력하는 프로그램을 작성하시오.

     

    문자열의 길이는 100자 이하다. 사전순(아스키코드순)으로 뒤에 나오는 것을 큰 것으로 한다.

     

    입력 예                                        

    3
    notebook
    pencil
    eraser

     

    출력 예                                        

    eraser
    notebook
    pencil


    FormativeString204.h

    #include <iostream>
    #include <string>
    
    using std::string;

     

    FormativeString204.cpp

    void FormativeString204::Code()
    {
    	int n;
    
    	std::cin >> n;
    
    	string* arr = new string[n];
    
    	for (int i = 0; i < n; i++)
    	{
    		std::cin >> arr[i];
    	}
    
    	for (int i = 1; i < n; i++)
    	{
    		for (int j = 0; j < n - i; j++)
    		{
    			if (arr[j] > arr[j + 1])
    			{
    				string temp{ arr[j] };
    				arr[j] = arr[j + 1];
    				arr[j + 1] = temp;
    			}
    		}
    	}
    
    	for (int i = 0; i < n; i++)
    	{
    		std::cout << arr[i] << '\n';
    	}
    
    	delete[] arr;
    }

     

    Language_Code/문자열2/형성평가5


    문제                                            

    5개의 단어(각 단어는 100자 이하)를 입력받은 후 문자와 문자열(100자 이하)을 한 개씩 입력받아 나중에 입력받은 문자나 문자열이 포함된 단어를 모두 출력하는 프로그램을 작성하시오.


    찾는 단어가 없으면 “none”이라고 출력한다.

     

    입력 예                                        

    banana
    apple
    melon
    tomato
    pear
    n
    to

     

    출력 예                                        

    banana
    melon
    tomato


    FormativeString205.h

    #include <iostream>
    #include <string>
    #include <climits>
    
    using std::string;

     

    FormativeString205.cpp

    void FormativeString205::Code()
    {
    	string arr[5];
    
    	for (int i = 0; i < 5; i++)
    	{
    		std::cin >> arr[i];
    	}
    
    	char ch;
    	string str;
    
    	std::cin >> ch >> str;
    	
    	bool hasFound{ false };
    	for (int i = 0; i < 5; i++)
    	{
    		if (arr[i].find(ch) != SIZE_MAX || arr[i].find(str) != SIZE_MAX)
    		{
    			hasFound = true;
    
    			std::cout << arr[i] << '\n';
    		}
    	}
    
    	if (!hasFound)
    	{
    		std::cout << "none";
    	}
    }

     

    Language_Code/문자열2/형성평가6


    문제                                            

    두 개의 문자열 A와 B 한 개의 정수 n을 입력받아서 A에 B를 연결하고, 변경된 문자열 A에서 n개의 문자를 B에 복사한 후 A와 B를 출력하는 프로그램을 작성하시오. (1≤n,A,B≤100)

     

    입력 예                                        

    banana apple 3

     

    출력 예                                        

    bananaapple
    banle


    FormativeString206.h

    #include <iostream>
    #include <string>
    
    using std::string;

     

    FormativeString206.cpp

    void FormativeString206::Code()
    {
    	string str1, str2;
    	int n;
    
    	std::cin >> str1 >> str2 >> n;
    
    	str1 += str2;
    
    	str2.replace(0, n, str1.substr(0, n));
    
    	std::cout << str1 << '\n';
    	std::cout << str2;
    }

     

    Language_Code/문자열2/형성평가7


    문제                                            

    두 개의 문자열을 입력받아 앞에서부터 정수로 변환 가능한 부분을 변환한 후 두 수의 곱을 출력하는 프로그램을 작성하시오.


    각 문자열의 길이는 100이하이다.

     

    입력 예                                        

    123.45 67@12

     

    출력 예                                        

    8241


    FormativeString207.h

    #include <iostream>
    #include <string>
    #include <cctype>
    
    using std::string;

     

    FormativeString207.cpp

    void FormativeString207::Code()
    {
    	string str1, str2;
    
    	std::cin >> str1 >> str2;
    
    	int var1{ 0 };
    
    	for (int i = 0; i < str1.size(); i++)
    	{
    		if (std::isdigit(str1[i]))
    		{
    			var1 = var1 * 10 + (str1[i] - '0');
    		}
    		else
    		{
    			break;
    		}
    	}
    
    	int var2{ 0 };
    
    	for (int i = 0; i < str2.size(); i++)
    	{
    		if (std::isdigit(str2[i]))
    		{
    			var2 = var2 * 10 + (str2[i] - '0');
    		}
    		else
    		{
    			break;
    		}
    	}
    
    	std::cout << var1 * var2;
    }

     

    Language_Code/문자열2/형성평가8


    문제                                            

    한 개의 단어를 입력받아서 거꾸로 뒤집어 출력하는 작업을 반복하다가 "END"라고 입력이 되면 종료하는 프로그램을 작성하시오.


    입력받는 단어의 길이는 20이하이다.

     

    입력 예                                        

    Jungol
    jjang
    END

     

    출력 예                                        

    lognuJ
    gnajj


    FormativeString208.h

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

     

    FormativeString208.cpp

    void FormativeString208::Code()
    {
    	string str;
    
    	while (true)
    	{
    		std::cin >> str;
    
    		if (str == "END")
    		{
    			break;
    		}
    
    		std::reverse(str.begin(), str.end());
    		std::cout << str << '\n';
    	}
    }

     

    Language_Code/문자열2/형성평가9


    문제                                            

    정수, 실수, 문자열을 차례로 입력받아서 새로운 문자열에 출력한 후 전체의 길이를 2등분하여 출력하는 프로그램을 작성하시오. 실수는 반올림하여 소수 셋째자리까지 출력하는 것으로 하고, 새로운 문자열의 길이가 홀수일 때는 첫 번째 줄에 한 개를 더 출력한다. 각 문자열의 길이는 30자 이내이다.

     

    입력 예                                        

    12345 5.0123 fighting

     

    출력 예                                        

    123455.01
    2fighting


    FormativeString209.h

    #pragma warning(disable : 4996)
    
    #include <iostream>
    #include <string>
    
    using std::string;

     

    FormativeString209.cpp

    void FormativeString209::Code()
    {
    	int var1;
    	double var2;
    	string str;
    
    	std::cin >> var1 >> var2 >> str;
    
    	char buff[100];
    
    	std::sprintf(buff, "%d%.3f%s", var1, var2, str.c_str());
    	str = buff;
    
    	bool isOdd{ str.size() % 2 == 1 };
    	
    	std::cout << str.substr(0, str.size() / 2 + (isOdd ? 1 : 0)) << '\n';
    	std::cout << str.substr(str.size() / 2 + (isOdd ? 1 : 0));
    }

     

    NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)

     

    NadanKim/CodingTest_JUNGOL

    JUNGOL 코딩 테스트를 위한 저장소. Contribute to NadanKim/CodingTest_JUNGOL development by creating an account on GitHub.

    github.com

     

    댓글

Designed by Tistory.