본문 바로가기

알고리즘

프로그래머스 - 숫자야구

https://programmers.co.kr/learn/courses/30/lessons/42841

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

프로그래머스 숫자야구 문제입니다.

숫자야구 문제의 특성은 3자리의 숫자 중에서 중복되는 숫자가 있으면 안됩니다.

3자리 숫자 중 중복되는 수는 조건에 맞아도 flag를 통해 정답의 개수로 올리지 않았습니다.

그 외에는 그냥 문제서 주어진 조건대로 수행할 수 있도록 조건 분기를 주어서 풀이하였습니다.

package com.company;

public class numberBaseball {
    static class Solution {
        public int solution(int[][] baseball) {
            int answer = 0;
            String number = "";
            String temp = "";
            boolean flag;
            for(int i=100; i<1000; i++){
                temp = String.valueOf(i);

                if(temp.charAt(0) == temp.charAt(1) || temp.charAt(0) == temp.charAt(2) || temp.charAt(1) == temp.charAt(2))
                    continue;
                else if(temp.charAt(0) == '0' || temp.charAt(1) == '0' || temp.charAt(2) == '0')
                    continue;
                flag = true;

                for(int j=0; j < baseball.length; j++){
                    int strike = 0;
                    int ball = 0;

                    for(int k=0; k<3; k++){
                        for(int m = 0; m<3; m++){
                            number = String.valueOf(baseball[j][0]);

                            if( k == m && temp.charAt(k) == number.charAt(m)){
                                strike++;
                                continue;
                            }

                            if( k != m && temp.charAt(k) == number.charAt(m)){
                                ball++;
                                continue;
                            }
                        }
                    }


                    if(strike != baseball[j][1] || ball != baseball[j][2]){
                        flag = false;
                        break;
                    }

                }
                if(flag == true){
                    answer++;
                }
            }
            return answer;
        }
    }
}

'알고리즘' 카테고리의 다른 글

프로그래머스 - 쇠막대기  (2) 2020.04.06
프로그래머스 - 체육복(그리디)  (2) 2020.04.06
프로그래머스 - 카펫  (2) 2020.04.04
프로그래머스 - 소수찾기  (0) 2020.04.04
프로그래머스 - 모의고사  (0) 2020.04.04