JUNGOL...32
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