ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JUNGOL...21
    일지 2020. 11. 14. 11:41

    Language_Code/배열2/자가진단1


    문제                                            

    영문 대문자를 입력받다가 대문자 이외의 문자가 입력되면 입력을 중단하고

    영문 대문자들에 대하여 1번 이상 입력된 각 문자와 그 문자의 개수를 사전 순으로 출력하는 프로그램을 작성하시오.

     

    입력 예                                        

    A B C F F F B Z !

     

    출력 예                                        

    A : 1

    B : 2

    C : 1

    F : 3

    Z : 1

     

    Hint!

    C, C++ 사용자 힌트입니다.

    'A'는 0번 'B'는 1번 'C'는 2번 … 'Z'는 25번에 count 한다. 

    'A'는 메모리에 65로 저장된다. 

    따라서 입력받은 문자에서 65 또는 'A'를 빼면 해당문자의 개수를 저장할 번호가 된다.

    ('B'-65=1 또는 'B'-'A'=1) 1을 다시 'B'로 바꾸어 출력하려면 char(1+65) 또는 char(1+'A')를 출력하면 된다.


    BasicArray201.h

    #include <iostream>

     

    BasicArray201.cpp

    void BasicArray201::Code()
    {
    	int arr[26]{};
    	char ch;
    
    	while (true)
    	{
    		std::cin >> ch;
    
    		if ('Z' < ch || ch < 'A')
    		{
    			break;
    		}
    
    		arr[ch - 'A']++;
    	}
    
    	for (int i = 0; i < 26; i++)
    	{
    		if (arr[i] > 0)
    		{
    			std::cout << static_cast<char>('A' + i) << " : " << arr[i] << '\n';
    		}
    	}
    }

     

    Language_Code/배열2/자가진단2


    문제                                            

    100 미만의 양의 정수들이 주어진다.

    입력받다가 0 이 입력되면 마지막에 입력된 0 을 제외하고 

    그 때까지 입력된 정수의 십의 자리 숫자가 각각 몇 개인지 

    작은 수부터 출력하는 프로그램을 작성하시오. (0개인 숫자는 출력하지 않는다.)

     

    입력 예                                        

    10 55 3 63 85 61 85 0

     

    출력 예                                        

    0 : 1

    1 : 1

    5 : 1

    6 : 2

    8 : 2

     

    Hint!

    10의 자리 숫자는 10으로 나눈 몫이다.


    BasicArray202.h

    #include <iostream>

     

    BasicArray202.cpp

    void BasicArray202::Code()
    {
    	int arr[10]{};
    	int num;
    
    	while (true)
    	{
    		std::cin >> num;
    
    		if (num == 0)
    		{
    			break;
    		}
    
    		arr[num / 10]++;
    	}
    
    	for (int i = 0; i < 10; i++)
    	{
    		if (arr[i] > 0)
    		{
    			std::cout << i << " : " << arr[i] << '\n';
    		}
    	}
    }

     

    Language_Code/배열2/자가진단3


    문제                                            

    100 이하의 자연수를 입력받아 첫 번째 항은 100으로 두 번째 항은 입력받은 수로 초기화하고 다음 항부터는 전전항에서 전항을 뺀 수로 채워나가는 수열을 작성하여 그 수가 음수가 나올 때까지 출력하는 프로그램을 작성하시오.

     

    입력 예                                        

    62

     

    출력 예                                        

    100 62 38 24 14 10 4 6 -2


    BasicArray203.h

    #include <iostream>

     

    BasicArray203.cpp

    void BasicArray203::Code()
    {
    	int num;
    
    	std::cin >> num;
    
    	int arr[100]{ 100, num };
    
    	for (int i = 2; i < 100; i++)
    	{
    		arr[i] = arr[i - 2] - arr[i - 1];
    
    		if (arr[i] < 0)
    		{
    			break;
    		}
    	}
    
    	for (int i = 0; i < 100; i++)
    	{
    		std::cout << arr[i] << ' ';
    
    		if (arr[i] < 0)
    		{
    			break;
    		}
    	}
    }

     

    Language_Code/배열2/자가진단4


    문제                                            

    3행 5열의 배열을 아래 출력 예와 같이 초기화 한 후 출력하는 프로그램을 작성하시오.

    숫자사이의 공백은 3칸으로하고 각 숫자는 2칸으로 오른쪽에 맞추어 출력한다. 예, "%2d   "

     

    출력 예                                        

     5    8   10    6    4

    11   20    1   13    2

     7    9   14   22    3


    BasicArray204.h

    #include <iostream>
    #include <iomanip>

     

    BasicArray204.cpp

    void BasicArray204::Code()
    {
    	int arr[3][5]{
    		5, 8, 10, 6, 4,
    		11, 20, 1, 13, 2,
    		7, 9, 14, 22, 3
    	};
    
    	for (int i = 0; i < 3; i++)
    	{
    		for (int j = 0; j < 5; j++)
    		{
    			std::cout << std::setw(2) << arr[i][j] << "   ";
    		}
    		std::cout << '\n';
    	}
    }

     

    Language_Code/배열2/자가진단5


    문제                                            

    2행 4열의 배열 두 개를 만들어서 입력을 받고 두 배열의 곱을 구하여 출력하는 프로그램을 작성하시오.

     

    입력 예                                        

    first array

    1 2 3 4

    5 6 7 8

    second array

    1 4 7 8

    3 6 9 8

     

    출력 예                                        

    1 8 21 32

    15 36 63 64


    BasicArray205.h

    #include <iostream>

     

    BasicArray205.cpp

    void BasicArray205::Code()
    {
    	int arr1[2][4];
    	int arr2[2][4];
    
    	std::cout << "first array\n";
    	for (int i = 0; i < 2; i++)
    	{
    		for (int j = 0; j < 4; j++)
    		{
    			std::cin >> arr1[i][j];
    		}
    	}
    
    	std::cout << "second array\n";
    	for (int i = 0; i < 2; i++)
    	{
    		for (int j = 0; j < 4; j++)
    		{
    			std::cin >> arr2[i][j];
    		}
    	}
    
    	int result[2][4];
    
    	for (int i = 0; i < 2; i++)
    	{
    		for (int j = 0; j < 4; j++)
    		{
    			result[i][j] = arr1[i][j] * arr2[i][j];
    		}
    	}
    
    	for (int i = 0; i < 2; i++)
    	{
    		for (int j = 0; j < 4; j++)
    		{
    			std::cout << result[i][j] << ' ';
    		}
    		std::cout << '\n';
    	}
    }

     

    Language_Code/배열2/자가진단6


    문제                                            

    5명 학생의 국어 영어 수학 과학 4과목의 점수를 입력 받아서 각 개인별로 평균이 80 이상이면“합격” 그렇지 않으면“불합격”을 출력하고 합격한 사람의 수를 출력하는 프로그램을 작성하시오.

     

    입력 예                                        

    85 67 95 65

    80 95 86 56

    100 98 67 86

    95 76 84 65

    67 86 90 76

     

    출력 예                                        

    fail

    fail

    pass

    pass

    fail

    Successful : 2


    BasicArray206.h

    #include <iostream>

     

    BasicArray206.cpp

    void BasicArray206::Code()
    {
    	int score[5][4];
    
    	for (int i = 0; i < 5; i++)
    	{
    		for (int j = 0; j < 4; j++)
    		{
    			std::cin >> score[i][j];
    		}
    	}
    
    	int avg[5]{};
    
    	for (int i = 0; i < 5; i++)
    	{
    		for (int j = 0; j < 4; j++)
    		{
    			avg[i] += score[i][j];
    		}
    		avg[i] /= 4;
    	}
    
    	int passCount{ 0 };
    
    	for (int i = 0; i < 5; i++)
    	{
    		if (avg[i] >= 80)
    		{
    			std::cout << "pass\n";
    
    			passCount++;
    		}
    		else
    		{
    			std::cout << "fail\n";
    		}
    	}
    
    	std::cout << "Successful : " << passCount;
    }

     

    Language_Code/배열2/자가진단7


    문제                                            

    배열을 만들어서 아래와 같이 저장한 후 출력하는 프로그램을 작성하시오. 규칙은 첫 번째 행은 모두 1로 초기화 하고 다음 행부터는 바로 위의 값과 바로 왼쪽의 값을 더한 것이다.

     

    출력 예                                        

    1 1 1 1 1

    1 2 3 4 5

    1 3 6 10 15

    1 4 10 20 35

    1 5 15 35 70


    BasicArray207.h

    #include <iostream>

     

    BasicArray207.cpp

    void BasicArray207::Code()
    {
    	int arr[5][5];
    
    	for (int i = 0; i < 5; i++)
    	{
    		std::fill_n(arr[i], 5, 1);
    	}
    
    	for (int i = 1; i < 5; i++)
    	{
    		for (int j = 1; j < 5; j++)
    		{
    			arr[i][j] = arr[i - 1][j] + arr[i][j - 1];
    		}
    	}
    
    	for (int i = 0; i < 5; i++)
    	{
    		for (int j = 0; j < 5; j++)
    		{
    			std::cout << arr[i][j] << ' ';
    		}
    		std::cout << '\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.