JUNGOL...21
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