개발자 톡

연습문제 톡 [21년 재직자 대회 예선] 전광판

계속 푸는중인데 진짜 왜 안되는지 모르겠어요ㅠ 도와주세요!!

등록일
2024-01-24 04:17:46
조회수
343
작성자
yoobin11
#include<iostream>
#include<vector>
#include<cmath>

using namespace std;

int main(int argc, char** argv)
{
    vector<vector<int>> num(10,vector<int>(7,0));
    num[0]={1,1,1,1,1,1,0};
    num[1]={0,1,1,0,0,0,0};
    num[2]={1,1,0,1,1,0,1};
    num[3]={1,1,1,1,0,0,1};
    num[4]={0,1,1,0,0,1,1};
    num[5]={1,0,1,1,0,1,1};
    num[6]={1,0,1,1,1,1,1};
    num[7]={1,1,1,0,0,1,0};
    num[8]={1,1,1,1,1,1,1};
    num[9]={1,1,1,1,0,1,1};

    
    int T=0;
    cin>>T;

    for(int i=0;i<T;i++){
        int count=0;
        int a=0;
        int b=0;
        cin>>a>>b;
        
        for(int j=0;j<5;j++){
            int c=(a%(int)pow(10,j+1)-a%(int)pow(10,j))/(int)pow(10,j);
            int d=(b%(int)pow(10,j+1)-b%(int)pow(10,j))/(int)pow(10,j);
            if(c!=0&&d==0&&b/(int)pow(10,j)==0){
               for(int k=0;k<7;k++){
                    if(num[c][k]==1){
                        count++;
                    }
                }
            }
            else if(c==0&&d!=0&&a/(int)pow(10,j)==0){
                for(int k=0;k<7;k++){
                    if(num[d][k]==1){
                        count++;
                    }
                }
            }
            else{
                for(int k=0;k<7;k++){
                    if(num[c][k]+num[d][k]==1){
                        count++;
                    }
                }
            }
        }
        cout<<count<<endl;
    }
    
   return 0;
}


#[21년_재직자_대회_예선]_전광판

이 카테고리의 톡 더보기