https://programmers.co.kr/learn/courses/30/lessons/42841
프로그래머스 숫자야구 문제입니다.
숫자야구 문제의 특성은 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 |