ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JUNGOL...22
    일지 2020. 11. 17. 19:38

    Language_Code/배열2/형성평가1


    문제                                            

    승지는 주사위 놀이를 하다가 주사위를 10번 던져서 각 숫자가 몇 번씩 나왔는지 알아보려고 한다. 한번 던질 때마다 나온 주사위의 숫자를 입력받아서 각 숫자가 몇 번씩 나왔는지 출력하는 프로그램을 작성하시오.

     

    입력 예                                        

    5 6 3 4 5 5 2 2 4 6

     

    출력 예                                        

    1 : 0

    2 : 2

    3 : 1

    4 : 2

    5 : 3

    6 : 2


    FormativeArray201.h

    #include <iostream>

     

    FormativeArray201.cpp

    void FormativeArray201::Code()
    {
    	int dice[6]{};
    
    	int var;
    	for (int i = 0; i < 10; i++)
    	{
    		std::cin >> var;
    
    		dice[var - 1]++;
    	}
    
    	for (int i = 0; i < 6; i++)
    	{
    		std::cout << i + 1 << " : " << dice[i] << '\n';
    	}
    }

     

    Language_Code/배열2/형성평가2


    문제                                            

    학생들의 점수를 입력을 받다가 0이 입력되면 그 때까지 입력받은 점수를 10점 단위로 구분하여 점수대별 학생 수를 출력하는 프로그램을 작성하시오. (1명도 없는 점수는 출력하지 않는다.)

     

    학생은 최대 100명이하이다.

     

    입력 예                                        

    63 80 95 100 46 64 88 0

     

    출력 예                                        

    100 : 1 person

    90 : 1 person

    80 : 2 person

    60 : 2 person

    40 : 1 person

     

    Hint!

    10으로 나눈 몫을 기준으로 배열에 넣은 후 출력한다.


    FormativeArray202.h

    #include <iostream>

     

    FormativeArray202.cpp

    void FormativeArray202::Code()
    {
    	int score[11]{};
    
    	int var;
    	while(true)
    	{
    		std::cin >> var;
    
    		if (var == 0)
    		{
    			break;
    		}
    
    		score[var / 10]++;
    	}
    
    	for (int i = 10; i >= 0; i--)
    	{
    		if (score[i] > 0)
    		{
    			std::cout << i * 10 << " : " << score[i] << " person\n";
    		}
    	}
    }

     

    Language_Code/배열2/형성평가3


    문제                                            

    10 미만의 자연수 두 개를 입력받아서

    첫 번째 항과 두 번째 항을 입력받은 수로 초기화 시킨 후

    세 번째 항부터는 전전항과 전항의 합을 구하여 

    그 합의 1의 자리로 채워서 차례로 10개를 출력하는 프로그램을 작성하시오.

     

    입력 예                                        

    3 5

     

    출력 예                                        

    3 5 8 3 1 4 5 9 4 3


    FormativeArray203.h

    #include <iostream>

     

    FormativeArray203.cpp

    void FormativeArray203::Code()
    {
    	int num1, num2;
    
    	std::cin >> num1 >> num2;
    
    	int arr[10]{ num1, num2 };
    
    	for (int i = 2; i < 10; i++)
    	{
    		arr[i] = (arr[i - 2] + arr[i - 1]) % 10;
    	}
    
    	for (int i = 0; i < 10; i++)
    	{
    		std::cout << arr[i] << ' ';
    	}
    }

     

    Language_Code/배열2/형성평가4


    문제                                            

    4행 3열의 배열을 선언하고 아래의 값으로 초기화 한 후 차례대로 출력한 후 배열의 모든 값을 더한 결과를 출력하는 프로그램을 작성하시오.

     

    {{3, 5, 9}, {2, 11, 5}, {8, 30, 10}, {22, 5, 1}}

     

    출력 예                                        

    3 5 9

    2 11 5

    8 30 10

    22 5 1

    111


    FormativeArray204.h

    #include <iostream>

     

    FormativeArray204.cpp

    void FormativeArray204::Code()
    {
    	int arr[4][3]{
    		3, 5, 9,
    		2, 11, 5,
    		8, 30, 10,
    		22, 5, 1
    	};
    
    	int sum{ 0 };
    
    	for (int i = 0; i < 4; i++)
    	{
    		for (int j = 0; j < 3; j++)
    		{
    			sum += arr[i][j];
    
    			std::cout << arr[i][j] << ' ';
    		}
    		std::cout << '\n';
    	}
    
    	std::cout << sum;
    }

     

    Language_Code/배열2/형성평가5


    문제                                            

    호석이네 학교는 6학년이 네 반이 있는데 각 반의 대표를 세 명씩 선발하여 제기차기 시합을 하였다.

    반별로 세 명이 제기를 찬 개수를 입력받아 각 반별로 제기를 찬 개수의 합계를 출력하는 프로그램을 작성하시오.

    (반드시 배열을 이용하고 입력후에 출력하는 방식으로 하세요.)

     

    입력 예                                        

    1class? 15 2 35

    2class? 33 1 6

    3class? 5 10 19

    4class? 1 8 55

     

    출력 예                                        

    1class : 52

    2class : 40

    3class : 34

    4class : 64


    FormativeArray205.h

    #include <iostream>

     

    FormativeArray205.cpp

    void FormativeArray205::Code()
    {
    	int classScore[4][3];
    
    	for (int i = 0; i < 4; i++)
    	{
    		std::cout << i + 1 << "class? ";
    		std::cin >> classScore[i][0] >> classScore[i][1] >> classScore[i][2];
    	}
    
    	for (int i = 0; i < 4; i++)
    	{
    		int sum{ classScore[i][0] + classScore[i][1] + classScore[i][2] };
    
    		std::cout << i + 1 << "class : " << sum << '\n';
    	}
    }

     

    Language_Code/배열2/형성평가6


    문제                                            

    예제를 보고 적당한 배열을 선언한 후 1행의 1열과 3열 5열을 각각 1로 초기화하고 나머지는 모두 0으로 초기화 한 후 2행부터는 바로 위행의 왼쪽과 오른쪽의 값을 더하여 채운 후 출력하는 프로그램을 작성하시오.

     

    출력 예                                        

    1 0 1 0 1

    0 2 0 2 0

    2 0 4 0 2

    0 6 0 6 0

    6 0 12 0 6


    FormativeArray206.h

    #include <iostream>

     

    FormativeArray206.cpp

    void FormativeArray206::Code()
    {
    	int arr[5][5]{
    		1, 0, 1, 0, 1,
    	};
    
    	for (int i = 1; i < 5; i++)
    	{
    		// 왼쪽 끝 값 보정
    		arr[i][0] = arr[i - 1][1];
    
    		// 오른쪽 끝 값 보정
    		arr[i][4] = arr[i - 1][3];
    
    		for (int j = 1; j < 4; j++)
    		{
    			arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j + 1];
    		}
    	}
    
    	for (int i = 0; i < 5; i++)
    	{
    		for (int j = 0; j < 5; j++)
    		{
    			std::cout << arr[i][j] << ' ';
    		}
    		std::cout << '\n';
    	}
    }

     

    Language_Code/배열2/형성평가7


    문제                                            

    2행 3열 배열을 두 개 선언하여 각각의 값을 입력 받은 후 두 배열의 같은 위치끼리 곱하여 새로운 배열에 저장한 후 출력하는 프로그램을 작성하시오.

     

    입력 예                                        

    first array

    3 6 9

    8 5 2

    second array

    9 8 7

    6 5 4

     

    출력 예                                        

    27 48 63

    48 25 8


    FormativeArray207.h

    #include <iostream>

     

    FormativeArray207.cpp

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

     

    Language_Code/배열2/형성평가8


    문제                                            

    4행 2열의 배열을 입력받아 가로평균과 세로평균 그리고 전체평균을 출력하는 프로그램을 작성하시오. (소수점 이하는 버림 한다.)

     

    입력 예                                        

    16 27

    39 100

    19 88

    61 20

     

    출력 예                                        

    21 69 53 40

    33 58

    46


    FormativeArray208.h

    #include <iostream>

     

    FormativeArray208.cpp

    void FormativeArray208::Code()
    {
    	int arr[4][2];
    
    	for (int i = 0; i < 4; i++)
    	{
    		for (int j = 0; j < 2; j++)
    		{
    			std::cin >> arr[i][j];
    		}
    	}
    
    	for (int i = 0; i < 4; i++)
    	{
    		int sum{ 0 };
    
    		for (int j = 0; j < 2; j++)
    		{
    			sum += arr[i][j];
    		}
    
    		int avg{ sum / 2 };
    
    		std::cout << avg << ' ';
    	}
    	std::cout << '\n';
    
    	for (int i = 0; i < 2; i++)
    	{
    		int sum{ 0 };
    
    		for (int j = 0; j < 4; j++)
    		{
    			sum += arr[j][i];
    		}
    
    		int avg{ sum / 4 };
    
    		std::cout << avg << ' ';
    	}
    	std::cout << '\n';
    
    	int sum{ 0 };
    
    	for (int i = 0; i < 4; i++)
    	{
    		for (int j = 0; j < 2; j++)
    		{
    			sum += arr[i][j];
    		}
    	}
    
    	int avg{ sum / 8 };
    
    	std::cout << avg;
    }

     

    Language_Code/배열2/형성평가9


    문제                                            

    행의 크기를 입력받아 파스칼 삼각형을 작성하여 마지막 행부터 첫 번째 행까지 차례로 출력하는 프로그램을 작성하시오. 행의 크기는 최대 10이다.

     

    입력 예                                        

    6

     

    출력 예                                        

    1 5 10 10 5 1

    1 4 6 4 1

    1 3 3 1

    1 2 1

    1 1

    1


    FormativeArray209.h

    #include <iostream>

     

    FormativeArray209.cpp

    void FormativeArray209::Code()
    {
    	int arr[10][10]{};
    	
    	for (int i = 0; i < 10; i++)
    	{
    		arr[i][0] = 1;
    	}
    
    	int var;
    
    	std::cin >> var;
    
    	for (int i = var - 2; i >= 0; i--)
    	{
    		for (int j = 1; j < var - i; j++)
    		{
    			arr[i][j] = arr[i + 1][j - 1] + arr[i + 1][j];
    		}
    	}
    
    	for (int i = 0; i < var; i++)
    	{
    		for (int j = 0; j < var - i; j++)
    		{
    			std::cout << arr[i][j] << ' ';
    		}
    		std::cout << '\n';
    	}
    }

     

    Language_Code/배열2/형성평가10


    문제                                            

    3행 5열의 2차원 문자배열 형태의 대문자들을 입력 받은 후 소문자로 바꾸어서 공백으로 구분하여 출력하는 프로그램을 작성하시오.

     

    입력 예                                        

    A B C D E

    F G H I J

    K L M N O

     

    출력 예                                        

    a b c d e

    f g h i j

    k l m n o

     

    Hint!

    대문자 A는 65로 저장되고 소문자 a는 97로 저장된다. 즉 소문자는 대문자보다 32가 더 크다.


    FormativeArray210.h

    #include <iostream>

     

    FormativeArray210.cpp

    void FormativeArray210::Code()
    {
    	char arr[3][5];
    
    	for (int i = 0; i < 3; i++)
    	{
    		for (int j = 0; j < 5; j++)
    		{
    			std::cin >> arr[i][j];
    		}
    	}
    
    	for (int i = 0; i < 3; i++)
    	{
    		for (int j = 0; j < 5; j++)
    		{
    			arr[i][j] = arr[i][j] - 'A' + 'a';
    		}
    	}
    
    	for (int i = 0; i < 3; 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.