일지

JUNGOL...22

niamdank 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