JUNGOL...25
Language_Code/함수2/자가진단1
문제
10 이하의 자연수 n을 입력받고 n개의 정수를 입력받아 내림차순으로 정렬하여 출력하는 프로그램을 작성하시오. (배열을 전달하는 함수를 이용한다.)
입력 예
4
10 9 2 15
출력 예
15 10 9 2
BasicFunction201.h
#include <iostream>
class BasicFunction201 : public Base
{
private:
void Function(int n, int arr[]);
};
BasicFunction201.cpp
void BasicFunction201::Code()
{
int n;
int arr[10]{};
std::cin >> n;
for (int i = 0; i < n; i++)
{
std::cin >> arr[i];
}
Function(n, arr);
}
void BasicFunction201::Function(int n, int arr[])
{
for (int i = 1; i < n; i++)
{
for (int j = 0; j < n - i; j++)
{
if (arr[j] < arr[j + 1])
{
int temp{ arr[j] };
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < n; i++)
{
std::cout << arr[i] << ' ';
}
}
Language_Code/함수2/자가진단2
문제
2016년의 날짜를 두 개의 정수 월 일로 입력받아서 입력된 날짜가 존재하면 "OK!" 그렇지 않으면 "BAD!"라고 출력하는 프로그램을 작성하시오.
입력 예
2 30
출력 예
BAD!
BasicFunction202.h
#include <iostream>
class BasicFunction202 : public Base
{
private:
void Function(int month, int day);
};
BasicFunction202.cpp
void BasicFunction202::Code()
{
int month, day;
std::cin >> month >> day;
Function(month, day);
}
void BasicFunction202::Function(int month, int day)
{
const int MonthDay[]{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (day > 0 && MonthDay[month - 1] >= day)
{
std::cout << "OK!";
}
else
{
std::cout << "BAD!";
}
}
Language_Code/함수2/자가진단3
문제
두 개의 정수를 입력받아 절대값이 더 큰 수를 출력하고 두 개의 실수를 입력받아 절대값이 작은 수를 출력하는 프로그램을 작성하시오. 실수는 소수점 이하 2자리까지 출력한다.
입력 예
-50 40
-12.34 5.67
출력 예
-50
5.67
BasicFunction203.h
#include <iostream>
class BasicFunction203 : public Base
{
private:
template <typename T>
T Function(T var);
};
BasicFunction203.cpp
void BasicFunction203::Code()
{
int a, b;
std::cin >> a >> b;
int big{ Function<int>(a) > Function<int>(b) ? a : b };
std::cout << big << '\n';
float c, d;
std::cin >> c >> d;
float small{ Function<float>(c) < Function<float>(d) ? c : d };
std::cout.precision(2);
std::cout.setf(std::ios::fixed);
std::cout << small;
}
template <typename T>
T BasicFunction203::Function(T var)
{
var = (var < 0 ? -var : var);
return var;
}
Language_Code/함수2/자가진단4
문제
원의 넓이를 입력받아 반지름의 길이를 소수 둘째자리까지 출력하는 프로그램을 작성하시오.
원의 넓이 = 반지름 * 반지름 * 3.14 식을 이용하시오.
입력 예
314
출력 예
10.00
Hint!
원의 넓이 / 3.14 의 제곱근을 구하면 된다.
BasicFunction204.h
#include <iostream>
#include <cmath>
class BasicFunction204 : public Base
{
private:
void Function(int var);
};
BasicFunction204.cpp
void BasicFunction204::Code()
{
int var;
std::cin >> var;
Function(var);
}
void BasicFunction204::Function(int var)
{
const float PI{ 3.14f };
float radius{ sqrt(var / PI) };
std::cout.precision(2);
std::cout.setf(std::ios::fixed);
std::cout << radius;
}
Language_Code/함수2/자가진단5
문제
세 개의 실수를 입력받아
가장 큰 수를 올림한 정수를 출력하고
가장 작은 수를 내림한 정수를 출력한 후
남은 수를 반올림한 정수를 출력하는 프로그램을 작성하시오.
입력되는 실수는 -1000이상 1000이하이다.
입력 예
3.45 51.48 -100.1
출력 예
52 -101 3
BasicFunction205.h
#include <iostream>
#include <cmath>
class BasicFunction205 : public Base
{
private:
void Function(float var1, float var2, float var3);
};
BasicFunction205.cpp
void BasicFunction205::Code()
{
float var1, var2, var3;
std::cin >> var1 >> var2 >> var3;
Function(var1, var2, var3);
}
void BasicFunction205::Function(float var1, float var2, float var3)
{
float big{ (var1 > var2 ? (var1 > var3 ? var1 : var3) : (var2 > var3 ? var2 : var3)) };
float small{ (var1 < var2 ? (var1 < var3 ? var1 : var3) : (var2 < var3 ? var2 : var3)) };
float mid{ (var1 != big && var1 != small ? var1 : (var2 != big && var2 != small ? var2 : var3)) };
std::cout << static_cast<int>(ceilf(big)) << ' ';
std::cout << static_cast<int>(floorf(small)) << ' ';
std::cout << static_cast<int>(floorf(mid + 0.5f));
}
Language_Code/함수2/자가진단6
문제
main() 함수 내에는 숫자를 사용하지 말고 즉, #define 을 이용하여 1, 2, 3 세 개의 숫자를 조합하여 가능한 한 모든 합을 출력하는 프로그램을 작성하시오. 출력예와 같이 출력하시오.
출력 예
1 + 1 = 2
1 + 2 = 3
1 + 3 = 4
2 + 1 = 3
2 + 2 = 4
2 + 3 = 5
3 + 1 = 4
3 + 2 = 5
3 + 3 = 6
Hint!
#define one 1....
BasicFunction206.h
#include <iostream>
#define one 1
#define two 2
#define three 3
BasicFunction206.cpp
void BasicFunction206::Code()
{
std::cout << one << " + " << one << " = " << one + one << '\n';
std::cout << one << " + " << two << " = " << one + two << '\n';
std::cout << one << " + " << three << " = " << one + three << '\n';
std::cout << two << " + " << one << " = " << two + one << '\n';
std::cout << two << " + " << two << " = " << two + two << '\n';
std::cout << two << " + " << three << " = " << two + three << '\n';
std::cout << three << " + " << one << " = " << three + one << '\n';
std::cout << three << " + " << two << " = " << three + two << '\n';
std::cout << three << " + " << three << " = " << three + three;
}
Language_Code/함수2/자가진단7
문제
10개의 정수를 입력받아 버블정렬로 내림차순 정렬을 하면서 하나의 단계가 끝날 때마다 그 정렬결과를 출력하는 프로그램을 작성하시오.
입력 예
15 93 26 8 43 10 25 88 75 19
출력 예
93 26 15 43 10 25 88 75 19 8
93 26 43 15 25 88 75 19 10 8
93 43 26 25 88 75 19 15 10 8
93 43 26 88 75 25 19 15 10 8
93 43 88 75 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
BasicFunction207.h
#include <iostream>
class BasicFunction207 : public Base
{
private:
void Function(int arr[]);
};
BasicFunction207.cpp
void BasicFunction207::Code()
{
int arr[10]{};
for (int i = 0; i < 10; i++)
{
std::cin >> arr[i];
}
for (int i = 1; i < 10; i++)
{
for (int j = 0; j < 10 - i; j++)
{
if (arr[j] < arr[j + 1])
{
int temp{ arr[j] };
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
Function(arr);
}
}
void BasicFunction207::Function(int arr[])
{
for (int i = 0; i < 10; i++)
{
std::cout << arr[i] << ' ';
}
std::cout << '\n';
}
Language_Code/함수2/자가진단8
문제
정수 두 개를 입력받고 계산식을 매크로 함수로 작성하여 두 수의 차를 제곱한 값과 합을 세제곱한 값을 각각 출력하는 프로그램을 작성하시오.
('^'는 연산자가 아니고 거듭제곱을 뜻하는 표시이므로 거듭제곱은 별도로 계산해야함)
입력 예
5 10
출력 예
(5 - 10) ^ 2 = 25
(5 + 10) ^ 3 = 3375
BasicFunction208.h
#include <iostream>
#define POW2(var) (var) * (var)
#define POW3(var) (var) * (var) * (var)
#define Function1(var1, var2) '(' << var1 << " - " << var2 << ") ^ 2 = " << POW2(var1 - var2)
#define Function2(var1, var2) '(' << var1 << " + " << var2 << ") ^ 3 = " << POW3(var1 + var2)
BasicFunction208.cpp
void BasicFunction208::Code()
{
int var1, var2;
std::cin >> var1 >> var2;
std::cout << Function1(var1, var2) << '\n';
std::cout << Function2(var1, var2) << '\n';
}
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)
NadanKim/CodingTest_JUNGOL
JUNGOL 코딩 테스트를 위한 저장소. Contribute to NadanKim/CodingTest_JUNGOL development by creating an account on GitHub.
github.com