일지

JUNGOL...21

niamdank 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