ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JUNGOL...25
    일지 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

     

    댓글

Designed by Tistory.