일지

JUNGOL...26

niamdank 2020. 11. 30. 14:29

Language_Code/함수2/형성평가1


문제                                            

정수 N을 입력받고 다시 N개의 정수를 입력받아 내림차순으로 정렬하여 출력하는 프로그램을 작성하시오.
(1 ≤ N ≤ 15, 입력과 출력, 정렬은 모두 함수를 이용할 것)

 

입력 예                                        

5

12 35 1 48 9

 

출력 예                                        

48 35 12 9 1


FormativeFunction201.h

#include <iostream>

class FormativeFunction201 : public Base
{
private:
	int* Input(int& n);
	void Sort(int n, int arr[]);
	void Print(int n, int arr[]);
};

 

FormativeFunction201.cpp

void FormativeFunction201::Code()
{
	int n;

	int* arr = Input(n);
	Sort(n, arr);
	Print(n, arr);

	delete[] arr;
}

int* FormativeFunction201::Input(int& n)
{
	std::cin >> n;

	int* arr = new int[n];

	for (int i = 0; i < n; i++)
	{
		std::cin >> arr[i];
	}

	return arr;
}

void FormativeFunction201::Sort(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;
			}
		}
	}
}

void FormativeFunction201::Print(int n, int arr[])
{
	for (int i = 0; i < n; i++)
	{
		std::cout << arr[i] << ' ';
	}
}

 

Language_Code/함수2/형성평가2


문제                                            

두 개의 실수를 입력받아 각각의 제곱근을 구하고 두 제곱근 사이에 존재하는 정수의 개수를 출력하는 프로그램을 작성하시오.

단, 입력받는 두 실수는 양수이며 두 제곱근 사이라는 말은 두 제곱근을 포함한다.

 

입력 예                                        

12.0 34.789

 

출력 예                                        

2

 

Hint!

두 수의 제곱근을 구하여 정수로 형변환을 한 후 생각해보자.

두 수 사이의 수들은 모두 포함이 되면 작은 수의 경우 변환하기 전 원래의 제곱근과 같다면 개수에 포함을 시켜야 한다. 

큰 수는 원래의 수보다 작거나 같으므로 무조건 포함이 된다.


FormativeFunction202.h

#include <iostream>
#include <cmath>

class FormativeFunction202 : public Base
{
private:
	void Function(float var1, float var2);
};

 

FormativeFunction202.cpp

void FormativeFunction202::Code()
{
	float var1, var2;
	
	std::cin >> var1 >> var2;

	Function(var1, var2);
}

void FormativeFunction202::Function(float var1, float var2)
{
	int num1{ static_cast<int>(ceil(sqrt(var1 < var2 ? var1 : var2))) };
	int num2{ static_cast<int>(floor(sqrt(var1 > var2 ? var1 : var2))) };

	std::cout << num2 - num1 + 1;
}

 

Language_Code/함수2/형성평가3


문제                                            

5개의 정수를 입력받아 각 정수의 절대값의 합을 출력하는 프로그램을 작성하시오.

 

입력 예                                        

35 -20 10 0 55

 

출력 예                                        

120


FormativeFunction203.h

#include <iostream>
#include <cmath>

class FormativeFunction203 : public Base
{
private:
	void Function(int arr[]);
};

 

FormativeFunction203.cpp

void FormativeFunction203::Code()
{
	int arr[5];

	for (int i = 0; i < 5; i++)
	{
		std::cin >> arr[i];
	}

	Function(arr);
}

void FormativeFunction203::Function(int arr[])
{
	int sum{ 0 };

	for (int i = 0; i < 5; i++)
	{
		sum += abs(arr[i]);
	}

	std::cout << sum;
}

 

Language_Code/함수2/형성평가4


문제                                            

정수 n을 입력받아 2n의 값을 출력하는 프로그램을 작성하시오. (1 ≤ n ≤ 20)

 

입력 예                                        

10

 

출력 예                                        

1024


FormativeFunction204.h

#include <iostream>

class FormativeFunction204 : public Base
{
private:
	void Function(int n);
};

 

FormativeFunction204.cpp

void FormativeFunction204::Code()
{
	int n;

	std::cin >> n;

	Function(n);
}

void FormativeFunction204::Function(int n)
{
	int result{ 1 };

	for (int i = 0; i < n; i++)
	{
		result *= 2;
	}

	std::cout << result;
}

 

Language_Code/함수2/형성평가5


문제                                            

세 개의 실수를 입력받아 합계와 평균을 구하여 평균을 반올림한 정수를 출력하고, 다음은 입력받은 수를 각각 먼저 반올림한 후 합계와 평균을 구하여 평균을 반올림한 한 결과를 출력하는 프로그램을 작성하시오.

 

입력 예                                        

153.74 34.59 109.5

 

출력 예                                        

99

100


FormativeFunction205.h

#include <iostream>
#include <cmath>

class FormativeFunction205 : public Base
{
private:
	void Function(float arr[]);
};

 

FormativeFunction205.cpp

void FormativeFunction205::Code()
{
	float arr[3];

	for (int i = 0; i < 3; i++)
	{
		std::cin >> arr[i];
	}

	Function(arr);
}

void FormativeFunction205::Function(float arr[])
{
	std::cout << static_cast<int>(floor((arr[0] + arr[1] + arr[2]) / 3 + 0.5f)) << '\n';

	for (int i = 0; i < 3; i++)
	{
		arr[i] = floor(arr[i] + 0.5f);
	}
	std::cout << static_cast<int>(floor((arr[0] + arr[1] + arr[2]) / 3 + 0.5f)) << '\n';
}

 

Language_Code/함수2/형성평가6


문제                                            

자료의 개수 7을 매크로 상수로 정의하여 자료의 개수만큼 정수를 입력받아 입력받은 순서대로 앞에서부터 마지막까지 가면서 바로 뒤의 숫자와 비교하여 크면 교환한다. 이러한 작업을 세 번 반복한 후 그 결과를 하나의 행에 공백으로 구분하여 출력하는 프로그램을 작성하시오.

 

입력 예                                        

15 20 41 8 26 33 19

 

출력 예                                        

8 15 20 19 26 33 41

 

Hint!

버블정렬에서 i를 N-1부터 N-3까지 3번 실행하면 된다.


FormativeFunction206.h

#include <iostream>

#define N 7

class FormativeFunction206 : public Base
{
private:
	void Function(int arr[]);
};

 

FormativeFunction206.cpp

void FormativeFunction206::Code()
{
	int arr[N];

	for (int i = 0; i < N; i++)
	{
		std::cin >> arr[i];
	}

	Function(arr);
}

void FormativeFunction206::Function(int arr[])
{
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < N - 1; 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/형성평가7


문제                                            

원주율을 3.141592로 매크로 상수로 정의하고 원의 넓이를 구하는 매크로 함수를 작성하여 반지름을 입력받아 원의 넓이를 출력하는 프로그램을 작성하시오. (소수 넷째자리에서 반올림)

 

입력 예                                        

radius : 1.5

 

출력 예                                        

area = 7.069

 

Hint!

원의 넓이 : 반지름 × 반지름 × 원주율(π)


FormativeFunction207.h

#include <iostream>

#define PI 3.141592
#define AREA(r) PI * r * r

 

FormativeFunction207.cpp

void FormativeFunction207::Code()
{
	double radius;

	std::cout << "radius : ";
	std::cin >> radius;

	std::cout.precision(3);
	std::cout.setf(std::ios::fixed);
	
	std::cout << "area = " << AREA(radius);
}

 

NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)

 

NadanKim/CodingTest_JUNGOL

JUNGOL 코딩 테스트를 위한 저장소. Contribute to NadanKim/CodingTest_JUNGOL development by creating an account on GitHub.

github.com