완전탐색 문제인 거 같다.
3자리수 전부를 주어진 baseball이랑 비교해서 4중 반복문을 구성했다.
3자리수 전부를 확인해보는데 각각의 수마다 baseball이랑 비교해 strike와 ball의 수를 구한다.
전부 strike와 ball 수가 동일하다면 가능한 답이므로 정답의 수를 하나 추가한다.
#include <string>
#include <vector>
using namespace std;
int solution(vector<vector<int>> baseball) {
int answer = 0;
for(int idx = 111; idx < 1000; idx++) {
int div1 = idx / 100, div2 = (idx / 10) % 10, div3 = idx % 10;
if(div1 == div2 || div1 == div3 || div2 == div3
|| div1 == 0 || div2 == 0 || div3 == 0) { continue; }
for(int i = 0; i < baseball.size(); i++) {
int ball = 0, strike = 0;
string val1 = to_string(idx);
string val2 = to_string(baseball[i][0]);
for(int j = 0; j < 3; j++) {
for(int k = 0; k < 3; k++) {
if(val1[j] == val2[k]) {
if(j == k) {
strike++;
}
else {
ball++;
}
}
}
}
if(baseball[i][1] != strike || baseball[i][2] != ball) {
break;
}
if(i == baseball.size() - 1) {
answer++;
}
}
}
return answer;
}
|
cs |
'problem solving' 카테고리의 다른 글
[프로그래머스]구명보트 (0) | 2020.03.11 |
---|---|
[프로그래머스]괄호 변환 (0) | 2020.03.10 |
[프로그래머스]전화번호 목록 (0) | 2020.03.10 |
[프로그래머스]H-index (0) | 2020.03.10 |
[프로그래머스]더 맵게 (0) | 2020.03.10 |