Dev.baelanche

[백준 2503] 숫자 야구 본문

Data Structure & Algorithm/PS - JAVA

[백준 2503] 숫자 야구

baelanche 2019. 3. 29. 22:19
반응형

문제

 

 

 

숫자야구 문제를 낼 수 있는 수의 범위가 123~987 사이의 865개이다.

865 * 최대 질문 횟수(100) * 각 자리수의 경우의 수(9) 를 해도 그리 크지 않으므로 이 역시 완전탐색으로 풀었다.

 

 

 

 

1. 123 부터 루프를 돌아 주어진 질문의 세자리 자연수와 비교하여 스트라이크, 볼 수가 일치할 경우만 체크한다.

2. 222, 353 등 같은 숫자가 2번 이상 올 경우는 예외처리 한다.

3. 마찬가지로 숫자 0도 예외처리 한다.

 

public static String[] base;
    public static String[] s;
    public static String[] b;
    public static int cnt = 0;
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int t = sc.nextInt();
        
        base = new String[t];
        s = new String[t];
        b = new String[t];
        
        for(int i=0; i<t; i++) {
            base[i] = sc.next();
            s[i] = sc.next();
            b[i] = sc.next();
        }
        
        for(int i=123; i<=987; i++) {
            check(String.valueOf(i));
        }
        
        System.out.println(cnt);
    }
    
    public static void check(String arr) {
        char[] charArr = arr.toCharArray();
        int eq = 0;
        
        for(int i=0; i<base.length; i++) {
            if(charArr[0] == charArr[1] || charArr[0] == charArr[2] || charArr[1] == charArr[2] ||
              charArr[0] == '0' || charArr[1] == '0' || charArr[2] == '0')
                continue;
            int str = 0;
            int bal = 0;
            for(int j=0; j<3; j++) {
                for(int k=0; k<3; k++) {
                    if(charArr[j] == base[i].charAt(k)) {
                        if(j == k) str++;
                        else bal++;
                    }
                }
            }
            if(str == Integer.parseInt(s[i]) && bal == Integer.parseInt(b[i]))
                eq++;
        }
        if(eq == base.length)
                cnt++;
    }
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 1018] 체스판 다시 칠하기  (0) 2019.04.01
[백준 1463] 1로 만들기  (0) 2019.03.31
[백준 10448] 유레카 이론  (0) 2019.03.29
[백준 3085] 사탕 게임  (0) 2019.03.28
[백준 2309] 일곱 난쟁이  (0) 2019.03.28
Comments