π£ λ¬Έμ μ΄ν΄
- μμλ 1μμ 9κΉμ§μ μλ‘ λ€λ₯Έ μ«μ μΈ κ°λ‘ ꡬμ±λ μΈ μ리 μλ₯Ό λ§μμμΌλ‘ μκ°νλ€. (μ: 324)
- λ―Όνμ΄λ 1μμ 9κΉμ§μ μλ‘ λ€λ₯Έ μ«μ μΈ κ°λ‘ ꡬμ±λ μΈ μ리 μλ₯Ό μμμκ² λ¬»λλ€. (μ: 123)
- λ―Όνμ΄κ° λ§ν μΈ μ리 μμ μλ μ«μλ€ μ€ νλκ° μμμ μΈ μ리 μμ λμΌν μ리μ μμΉνλ©΄ μ€νΈλΌμ΄ν¬ ν λ²μΌλ‘ μΌλ€. μ«μκ° μμμ μΈ μ리 μμ μκΈ΄ νλ λ€λ₯Έ μ리μ μμΉνλ©΄ λ³Ό ν λ²μΌλ‘ μΌλ€.
- λ―Όνμ΄μ λ¬Όμλ€κ³Ό κ°κ°μ λ¬Όμμ λν μμμ λ΅μ΄ μ λ ₯μΌλ‘ μ£Όμ΄μ§ λ μμκ° μκ°νκ³ μμ κ°λ₯μ±μ΄ μλ λ΅μ μ΄ κ°μλ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λ¬Έμ μ μ μλ λ€μκ³Ό κ°μ 쑰건λ€μ μ 리νλ©΄ λ€μκ³Ό κ°λ€.
1. μμμ λ―Όνμ΄κ° μκ°ν μλ μΈ μ리 μμ΄κ³ , κ° μ리 μλ μλ‘ λ€λ₯Έ μ«μμ΄λ€.
2. κ·μΉμ νν μκ³ μλ μ«μμΌκ΅¬μ λμΌνλ, λ¬Έμ μμ 묻λ κ²μ κ°λ₯ν λͺ¨λ μ«μμ κ°μμ΄λ€.
μ«μμ λ²μλ 그리 ν¬μ§ μμ 111 ~ 999 μ΄κ³ , μ°μ°λμ΄ λ§μ§ μμ
μμ νμ(Brute-force Search) λ°©μμ μ¬μ©νκΈ°λ‘ νλ€.
π νμ΄ κ³Όμ
μμ± μΈμ΄: C++
#include <iostream>
#include <string>
#include <vector>
#define NUMBERSIZE 3 // μ«μμ μ리μ(μΈμ리 μμ΄λ―λ‘ 3)
using namespace std;
// μ
λ ₯λ°μ΄ν°λ₯Ό μ μ₯ν ꡬ쑰체
typedef struct inpForm{
string number; // μ«μ
int strike; // μ€νΈλΌμ΄ν¬ μ
int ball; // λ³Ό μ
}INPFORM;
int arr[1000] = {0,};
int main(){
INPFORM input; // μ
λ ₯λ°μ΄ν°λ₯Ό μ μ₯ν ꡬ쑰체 λ³μ
vector<INPFORM> inpVector; // ꡬ쑰체 λ³μλ₯Ό λ΄μ INPFORMν 벑ν°
int cnt, check, result = 0;
cin >> cnt;
// μ
λ ₯ λ°μ΄ν° 벑ν°μ μ μ₯
for(int i = 0; i < cnt; ++i) {
cin >> input.number >> input.strike >> input.ball;
inpVector.push_back(input);
}
/* 111~122, 988~999κΉμ§λ μ€λ³΅μ΄ μμΌλ―λ‘ μ μΈ
123~987 λ²μμμ μ«μ νλνλ 체ν¬ν΄λ³Έλ€.
μ§λ¬Έ νμκ° 4λ²μ΄λΌλ©΄ 4λ²μ λ€ νμΈνλ€.
κ° μ§λ¬Έμ μ«μλ₯Ό iμ λΉκ΅ν΄μ strike, ballμ μΉ΄μ΄νΈνκ³ μ
λ ₯μ strike, ballκ³Ό λΉκ΅νλ€.
νμ¬ μ«μ iκ° 4λ²μ μ§λ¬Έμμ λͺ¨λ μΌμΉνλ©΄ μ λ΅μΉ΄μ΄νΈλ₯Ό 1 μ¦κ°νλ€. */
for (int i = 123; i <= 987; ++i) {
check = 0;
string num = to_string(i);
// μΈ μ리μμ€μ νλλΌλ μ€λ³΅λκ±°λ 0μ΄λ©΄ ν¨μ€
if(num[1] == '0' || num[2] == '0' || num[0] == num[1] || num[0] == num[2] || num[1] == num[2]) continue;
for (int j = 0; j < cnt; ++j) {
int stkCnt = 0, ballCnt = 0;
for(int k = 0; k < NUMBERSIZE; ++k){ // μ«μμ κ° μΈμ리λ₯Ό λΉκ΅
// μμΉμ μ«μκ° μΌμΉνλ©΄ strike μΉ΄μ΄νΈ μ¦κ°
if(num[k] == inpVector[j].number[k]){
stkCnt++;
}
// μμΉλ λ€λ₯΄λ μ«μκ° μΌμΉνλ©΄ ball μΉ΄μ΄νΈ μ¦κ°
if(num[k] == inpVector[j].number[(k+1)%NUMBERSIZE] || num[k] == inpVector[j].number[(k+2)%NUMBERSIZE]){
ballCnt++;
}
}
// strikeμ ball μΉ΄μ΄νΈκ° μ
λ ₯κ³Ό λμΌνλ©΄ μ λ΅ μΉ΄μ΄νΈ μ¦κ°
if(stkCnt == inpVector[j].strike && ballCnt == inpVector[j].ball){
check++;
}
}
// iκ° μ£Όμ΄μ§ μ
λ ₯λ°μ΄ν°λ₯Ό λͺ¨λ λ§μ‘±νλ μμΈ κ²½μ° κ²°κ³Όκ° μ¦κ°
if(check == cnt){
result++;
}
}
cout << result << endl;
return 0;
}
π λ°°μ΄ μ
λΈλ£¨νΈ ν¬μ€ λ°©μμ΄λΌκ³ ν΄λ μ κ°μ΄ μ€μ§ μμλ€. (λ ν¨μ¨μ μΈ λ°©λ²μ μ°Ύμμ κ³ λ―Όνλλ° μκ°μ΄ κ½€λ κ±Έλ¦Ό..)
μ΄λ² λ¬Έμ λ₯Ό ν΅ν΄ νμ€ν κΉ¨λ¬μ κ²μ,
λΈλ£¨νΈ ν¬μ€λ μ λ§ μλ κ·Έλλ‘ νλνλ λ€ νμΈν΄ 보λ κ²μ΄λ€.
'Problem_Solving' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] λ°±μ€ 1182 λΆλΆμμ΄μ ν© / μμ νμ(Brute-force Search) (0) | 2020.02.26 |
---|---|
[BOJ] λ°±μ€ 1018 체μ€ν λ€μ μΉ νκΈ° / μμ νμ(Brute-force Search) (0) | 2020.02.25 |
[BOJ] λ°±μ€ 3085 μ¬ν κ²μ / μμ νμ(Brute-force Search) (0) | 2020.02.19 |
[BOJ] λ°±μ€ 1011 Fly me to the Alpha Centauri (2) | 2020.01.07 |
[BOJ] λ°±μ€ 2869 λ¬ν½μ΄λ μ¬λΌκ°κ³ μΆλ€ (0) | 2020.01.03 |