count배열_220712
Counting 배열
1-9 개수 세기
원소의 크기가 1에서 9 사이인 n개의 원소가 주어졌을 때, 1부터 9까지 각각 몇 번씩 나왔는지를 출력하는 프로그램을 작성해보세요.
#include<iostream>
using namespace std;
int main(){
int n,tmp;
cin >> n;
int m[9] = { 0,};
for(int i=0;i<n;i++){
cin>>tmp;
m[tmp-1]++;
}
for(int j=0;j<9;j++) cout<<m[j]<<endl;
}
주사위 놀이
주사위를 10번 던진다고 합니다. 던질 때마다 나온 숫자가 주어지면 각 숫자가 몇 번씩 나왔는지 출력하는 프로그램을 작성해보세요.
#include<iostream>
using namespace std;
int main(){
int n;
int m[6]={0,};
for(int i=0;i<10;i++){
cin>>n;
m[n-1]++;
}
for(int j=0;j<6;j++){
cout<< j+1<<" - "<<m[j]<<endl;
}
return 0;
}
십의 자리 숫자
세자리 미만의 정수가 주어지다가 0이 주어지면 그 0을 제외하고 그 때까지 입력된 정수의 숫자들의 십의 자리 숫자가 각각 몇 개인지 작은 수부터 출력하는 프로그램을 작성해보세요. 단, 0이 첫 번째 부터 주어지지않는다고 가정해도 좋습니다.
#include <iostream>
using namespace std;
int main(){
int n;
int m[9]={0,};
cin >> n;
while(n!=0){
if(n/10>0) m[n/10-1]++;
cin >> n;
}
for(int i=0;i<9;i++){
cout<<i+1<<" - "<<m[i]<<endl;
}
return 0;
}
점수대 파악하기
100명 이하인 학생들의 점수가 주어지다가 0이 주어지면 그때까지 주어진 점수를 10점 단위로 구분하여 점수대별 학생 수를 출력하는 프로그램을 작성해보세요.
#include<iostream>
using namespace std;
int main(){
int n;
int m[10]={0,};
cin >> n;
while(n!=0){
if(n/10>0) m[n/10-1]++;
cin >> n;
}
for(int i=10;i>0;i--){
cout<<i*10<<" - "<<m[i-1]<<endl;
}
return 0;
}
코로나 메뉴얼2
감기 증상이 있으면 Y
, 감기 증상이 없으면 N
으로 나타내기로 하고, 체온을 쟀을 때 수치에 따라 진료소를 다르게 구분하려고 합니다.
- 증상도 있고 37℃ 이상일 때
A
- 증상은 없지만 37℃ 이상일 때
B
- 증상은 있지만 체온은 정상일 때
C
- 둘 다 괜찮은 경우엔
D
- 한 번에 3명씩 검사하는데
A
로 가는 사람이 2명 이상 나올때는 위급상황E
로 분류합니다.
#include <iostream>
using namespace std;
int main(){
char a;
int temp;
int b[4]={0,};
for(int i=0;i<3;i++){
cin >> a >> temp;
if(a=='Y'){
if(temp>=37) b[0]++;
else b[2]++;
}
else{
if(temp>=37) b[1]++;
else b[3]++;
}
}
for(int j=0;j<4;j++) cout<<b[j]<<' ';
if(b[0]>=2) cout<<'E';
return 0;
}
나눗셈의 나머지
두 정수 a, b가 주어지면, a를 b로 나눈 몫을 a에 계속해서 저장하는 것을 반복하려고 합니다.
a가 1이하
가 되기 전 까지 나눗셈을 반복한다고 할 때, 각 나눗셈 연산마다 나온 나머지들이 등장한 횟수를 제곱하여 그 합을 출력하는 프로그램을 작성해보세요.
예를 들어, a = 1000, b = 4
인 경우 나눗셈은 다음과 같이 진행됩니다.
1000÷4=250 ... 0
250÷4=62 ... 2
62÷4=15 ... 2
15÷4=3 ... 3
3÷4=0 ... 3
5번의 나눗셈 동안 나머지는 0이 1번, 2가 2번, 3이 2번 등장했으므로, 각 나머지가 나온 횟수의 제곱의 합은 $1^2+2^2+2^2=9$ 입니다.
#include <iostream>
using namespace std;
int main(){
int a,b,result = 0;
cin >> a >> b;
int n[b] = {0,};
while(a >1 ){
n[a%b]++;
a /= b;
}
for(int i=0;i<b;i++){
result += n[i]*n[i];
}
cout<<result;
return 0;
}