-
JUNGOL...31일지 2020. 12. 10. 14:47
Language_Code/문자열2/자가진단1
문제
5개의 단어를 입력받아 모든 단어를 입력받은 역순으로 출력하는 프로그램을 작성하시오.
각 단어의 길이는 30이하이다.입력 예
dog
cat
chick
calf
goat
출력 예
goat
calf
chick
cat
dog
BasicString201.h
#include <iostream> #include <string> using std::string;
BasicString201.cpp
void BasicString201::Code() { string arr[5]; for (int i = 0; i < 5; i++) { std::cin >> arr[i]; } for (int i = 4; i >= 0; i--) { std::cout << arr[i] << '\n'; } }
Language_Code/문자열2/자가진단2
문제
공백을 포함한 문장을 입력 받아서 홀수 번째 단어를 차례로 출력하는 프로그램을 작성하시오.
문장의 길이는 100자 이하이다.
입력 예
I like you better than him.
출력 예
I
you
than
Hint!
BasicString202.h
#include <iostream> #include <string> #include <sstream> using std::string; using std::stringstream;
BasicString202.cpp
void BasicString202::Code() { string str; std::getline(std::cin, str); int index{ 1 }; string word; for (stringstream ss{ str }; ss >> word; index++) { if (index % 2 == 1) { std::cout << word << '\n'; } } }
Language_Code/문자열2/자가진단3
문제
20개 이하의 문자로 이루어진 10개의 단어와 한 개의 문자를 입력받아서 마지막으로 입력받은 문자로 끝나는 단어를 모두 출력하는 프로그램을 작성하시오.
입력 예
champion
tel
pencil
olympiad
class
information
jungol
lesson
book
lion
l출력 예
tel
pencil
jungolHint!
마지막 문자의 위치를 알기 위해서는 먼저 단어의 길이를 알아야 한다. 마지막 문자는 그 길이-1의 위치에 있다.
BasicString203.h
#include <iostream> #include <string> using std::string;
BasicString203.cpp
void BasicString203::Code() { string arr[10]; char ch; for (int i = 0; i < 10; i++) { std::cin >> arr[i]; } std::cin >> ch; for (int i = 0; i < 10; i++) { if (*arr[i].rbegin() == ch) { std::cout << arr[i] << '\n'; } } }
Language_Code/문자열2/자가진단4
문제
문자열을 선언하고 다음과 같이 "Hong Gil Dong"이라는 이름을 복사하여 저장한 후 출력하는 프로그램을 작성하시오.
출력 예
Hong Gil Dong
Hint!
strcpy(문자열변수, "Hong Gil Dong");
BasicString204.h
#include <iostream> #include <string> using std::string;
BasicString204.cpp
void BasicString204::Code() { string str1{ "Hong Gil Dong" }; string str2; str2 = str1; std::cout << str2; }
Language_Code/문자열2/자가진단5
문제
20개 이하의 문자열로 된 이름을 입력받아서 그 뒤에 "fighting"을 붙여서 저장하고 출력하는 프로그램을 작성하시오.
입력 예
Korea
출력 예
Koreafighting
BasicString205.h
#include <iostream> #include <string> using std::string;
BasicString205.cpp
void BasicString205::Code() { string str; std::cin >> str; str += "fighting"; std::cout << str; }
Language_Code/문자열2/자가진단6
문제
20자 이하인 두 개의 문자열을 입력받아 첫 번째 문자열의 앞부분 두자를 두 번째 문자열의 앞부분에 복사하고 다시 뒷부분에 이어 붙여서 저장한 후 두 번째 문자열을 출력하는 프로그램을 작성하시오.
입력 예
ABCDE QWERTY
출력 예
ABERTYAB
BasicString206.h
#include <iostream> #include <string> using std::string;
BasicString206.cpp
void BasicString206::Code() { string str1, str2; std::cin >> str1 >> str2; str2 = str1.substr(0, 2) + str2.substr(2) + str1.substr(0, 2); std::cout << str2; }
Language_Code/문자열2/자가진단7
문제
100개 이하의 문자로 구성된 한 개의 문자열을 입력받아서 그 문자열에 문자 'c'와 문자열 "ab"의 포함여부를 "Yes", "No"로 구분하여 출력예처럼 출력하는 프로그램을 작성하시오.
입력 예
abdef
출력 예
No Yes
BasicString207.h
#include <iostream> #include <string> #include <climits> using std::string;
BasicString207.cpp
void BasicString207::Code() { string str; std::cin >> str; bool hasC{ false }; if (str.find('c') != ULLONG_MAX) { hasC = true; } bool hasAB{ false }; if (str.find("ab") != ULLONG_MAX) { hasAB = true; } std::cout << (hasC ? "Yes" : "No") << ' ' << (hasAB ? "Yes" : "No"); }
Language_Code/문자열2/자가진단8
문제
세 개의 단어를 입력받아 아스키코드(사전) 순으로 가장 먼저 나오는 단어를 출력하는 프로그램을 작성하시오.
각 단어의 길이는 1이상 10 이하이다.
입력 예
cat dog cow
출력 예
cat
BasicString208.h
#include <iostream> #include <string> using std::string;
BasicString208.cpp
void BasicString208::Code() { string arr[3]; for (int i = 0; i < 3; i++) { std::cin >> arr[i]; } string result{ arr[0] }; for (int i = 1; i < 3; i++) { if (result > arr[i]) { result = arr[i]; } } std::cout << result; }
Language_Code/문자열2/자가진단9
문제
5개의 문자열을 입력받아 문자열 크기(아스키코드) 역순으로 정렬하여 출력하는 프로그램을 작성하시오.
주어지는 문자열의 길이는 20자 미만이다.
입력 예
Jungol
Korea
information
Monitor
class출력 예
information
class
Monitor
Korea
Jungol
BasicString209.h
#include <iostream> #include <string> using std::string;
BasicString209.cpp
void BasicString209::Code() { string arr[5]; for (int i = 0; i < 5; i++) { std::cin >> arr[i]; } for (int i = 1; i < 5; i++) { for (int j = 0; j < 5 - i; j++) { if (arr[j][0] < arr[j + 1][0]) { string temp{ arr[j] }; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < 5; i++) { std::cout << arr[i] << '\n'; } }
Language_Code/문자열2/자가진단10
문제
20자 이하인 한 개의 문자열을 입력받아서 첫 줄에는 정수로 변환하여 2배한 값을 출력하고, 다음 줄에는 실수로 변환한 값을 반올림하여 소수 둘째자리까지 출력하는 프로그램을 작성하시오.
입력 예
50.1*34
출력 예
100
50.10
BasicString210.h
#include <iostream> #include <string> #include <cctype> using std::string;
BasicString210.cpp
void BasicString210::Code() { string str; std::cin >> str; int index{ 0 }; bool hasDot{ false }; for (; index < str.size(); index++) { if (!isdigit(str[index])) { if (str[index] == '.' && !hasDot) { hasDot = true; } else { break; } } } str = str.substr(0, index); std::cout.precision(2); std::cout.setf(std::ios::fixed); std::cout << std::atoi(str.c_str()) * 2 << '\n'; std::cout << std::atof(str.c_str()); }
Language_Code/문자열2/자가진단11
문제
5개의 정수를 입력받아 모두 붙여서 문자열로 저장한 후 세 자씩 나누어서 출력하는 프로그램을 작성하시오.
입력 예
12 5963 58 1 45678
출력 예
125
963
581
456
78
BasicString211.h
#include <iostream> #include <string> using std::string;
BasicString211.cpp
void BasicString211::Code() { int var; string str; for (int i = 0; i < 5; i++) { std::cin >> var; str.append(std::to_string(var)); } for (int i = 0; i < str.size(); i += 3) { for (int j = i, k = i + 3; j < k && j < str.size(); j++) { std::cout << str[j]; } std::cout << '\n'; } }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)
더보기문제출처
Language_Code/문자열2/자가진단1-JUNGOL
Language_Code/문자열2/자가진단2-JUNGOL
Language_Code/문자열2/자가진단3-JUNGOL
Language_Code/문자열2/자가진단4-JUNGOL
Language_Code/문자열2/자가진단5-JUNGOL
Language_Code/문자열2/자가진단6-JUNGOL
Language_Code/문자열2/자가진단7-JUNGOL
Language_Code/문자열2/자가진단8-JUNGOL
Language_Code/문자열2/자가진단9-JUNGOL