일지

JUNGOL...25

niamdank 2020. 11. 25. 08:14

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