ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • count배열_220712
    데일리 codeup/일차원 배열 2022. 7. 12. 14:20

    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;
    }

    '데일리 codeup > 일차원 배열' 카테고리의 다른 글

    최대최소_220712  (0) 2022.07.12
    탐색_220712  (0) 2022.07.12
    배열만들기_220711  (0) 2022.07.11
    인덱스 참조_220711  (0) 2022.07.11
    한줄에 여러개 입력2_220711  (0) 2022.07.11

    댓글

Designed by Tistory.