코딩스터디

7102. 준홍이의 카드놀이

애플앤마블 2019. 5. 12. 23:53
반응형
SMALL

Cards by zidney from the Noun Project

이 문제는 swexpertacademy의 7102번 문제임을 알립니다.

 

N 과 M이 각 케이스마다 입력되는데 1~N, 1~M의 숫자를 더했을 때 확률이 가장 높은 숫자를 출력하므로 배열을 N+M+1칸으로 선언한다.

 

그 이유는 두개의 숫자를 더했을 때 나온 수의 배열 칸에 count++를 할 것인데 N, M, 을 2,3이라고 했을 때 arr[5]으로 선언하면

 

arr[0]~arr[4]까지 5개가 나오므로 편의를 위해 +1을 해준다.

 

그 후 가장 많이 등장한 숫자(들)을 출력한다.

 

#include<iostream>
#include<algorithm>

using namespace std;

int main(void){
	int T; 
    cin>>T;
    for(int i=1; i<=T; i++){
    	cout<<"#"<<i<<" ";
        int N, M;
        cin>>N>>M;
        int set1[N];
        int set2[M];
        int arr[N+M+1];
        //initialization
        for(int j=0; j<N; j++){set1[j]=0;}
        for(int j=0; j<M; j++){set2[j]=0;}
        for(int j=0; j<N+M+1; j++){arr[j]=0;}
        
        //등장횟수
        for(int j=0;j<N; j++){
        	for(int k=0; k<M; k++){
            	arr[(j+1)+(k+1)]++;
            }
        }
        int max=0;
        //가장 등장 많이한 숫자 찾기
       for(int a=0;a<N+M+1; a++){
       		
           if(arr[a]>=max) max=arr[a];
       }
           for(int b=0; b<N+M+1; b++){
           		if(arr[b]==max) cout<<b<<" ";
           }
        cout<<endl;
    }
    return 0;
}

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWkIlHWqBYcDFAXC

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

www.swexpertacademy.com

 

반응형
LIST