일지

JUNGOL...32

niamdank 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