본문 바로가기

정올문제소스코드

1761 : 숫자 야구

import java.util.Scanner;

public class Main {
     
    public static class Baseball{
        int num;
        int strick;
        int ball;
        public Baseball() {}
        public Baseball(int num,int strick,int ball) {
            this.num = num;
            this.strick=strick;
            this.ball =ball;
        }
    }
 
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
       
     
        int n;
         
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
         
        Baseball[] baseBall = new Baseball[n];
         
       int i, num, st, ba;
        
       for (i = 0; i < n; i++) {
           num = sc.nextInt();
           st = sc.nextInt();
           ba = sc.nextInt();
           baseBall[i] = new Baseball(num,st,ba);
       }
        
       int cnt = 0;
        
       for (i = 100; i <= 999; i++) {
           if(i==324)
           {
               int imsi=0;
           }
           if (check(baseBall, n, i)) {
               cnt++;
           }
       }
        
       System.out.print(cnt);
        
    }
 
    private static boolean check(Baseball[] baseBall, int n, int num) {
        // TODO Auto-generated method stub
        int a1 = num / 100;
        int a2 = (num / 10) % 10;
        int a3 = num % 10;
        int i;
         
        if (a1 == a2 || a1 == a3 || a2 == a3) {
            return false;
        }
        if (a1 == 0 || a2 == 0 || a3 ==0) {
            return false;
        }
         
        for (i = 0; i < n; i++) {
            int bnum = baseBall[i].num;
            int b1 = bnum /100;
            int b2 = (bnum / 10) % 10;
            int b3 = bnum % 10;
             
            int stcnt = 0;
            int bacnt = 0;
             
            if (a1 == b1) stcnt++;
            if (a2 == b2) stcnt++;
            if (a3 == b3) stcnt++;
            if (a1 == b2 || a1 == b3) bacnt++;
            if (a2 == b1 || a2 == b3) bacnt++;
            if (a3 == b1 || a3 == b2) bacnt++;
             
            if (stcnt != baseBall[i].strick) return false;
            if (bacnt != baseBall[i].ball) return false;
        }
        return true;
    }
 
}

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1035&sca=2060

'정올문제소스코드' 카테고리의 다른 글

2259 : 참외밭  (0) 2021.10.29
1836 : 연속부분합 찾기  (0) 2021.10.29
1031 : 빙고  (0) 2021.10.29
1733 : 오목  (0) 2021.10.29
1997 : 떡 먹는 호랑이  (0) 2021.10.29