https://www.acmicpc.net/problem/2503
๋ฌธ์
์ ๋ณด๋ฌธํ์งํฅ์ ์ ๋ณด ์์ฌ ๋์๋ฆฌ์์ ๋์๋ฆฌ ํ๋์ ํ๋ ์์์ ๋ฏผํ์ด๋ ์ฌ๋ ์๊ฐ์ ํํ ์ซ์์ผ๊ตฌ ๊ฒ์์ ํ๊ธฐ๋ก ํ๋ค.
- ์์๋ 1์์ 9๊น์ง์ ์๋ก ๋ค๋ฅธ ์ซ์ ์ธ ๊ฐ๋ก ๊ตฌ์ฑ๋ ์ธ ์๋ฆฌ ์๋ฅผ ๋ง์์์ผ๋ก ์๊ฐํ๋ค. (์: 324)
- ๋ฏผํ์ด๋ 1์์ 9๊น์ง์ ์๋ก ๋ค๋ฅธ ์ซ์ ์ธ ๊ฐ๋ก ๊ตฌ์ฑ๋ ์ธ ์๋ฆฌ ์๋ฅผ ์์์๊ฒ ๋ฌป๋๋ค. (์: 123)
- ๋ฏผํ์ด๊ฐ ๋งํ ์ธ ์๋ฆฌ ์์ ์๋ ์ซ์๋ค ์ค ํ๋๊ฐ ์์์ ์ธ ์๋ฆฌ ์์ ๋์ผํ ์๋ฆฌ์ ์์นํ๋ฉด ์คํธ๋ผ์ดํฌ ํ ๋ฒ์ผ๋ก ์ผ๋ค. ์ซ์๊ฐ ์์์ ์ธ ์๋ฆฌ ์์ ์๊ธด ํ๋ ๋ค๋ฅธ ์๋ฆฌ์ ์์นํ๋ฉด ๋ณผ ํ ๋ฒ์ผ๋ก ์ผ๋ค.
์) ์์๊ฐ 324๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉด
- 429๋ 1 ์คํธ๋ผ์ดํฌ 1 ๋ณผ์ด๋ค.
- 241์ 0 ์คํธ๋ผ์ดํฌ 2 ๋ณผ์ด๋ค.
- 924๋ 2 ์คํธ๋ผ์ดํฌ 0 ๋ณผ์ด๋ค.
- ์์๋ ๋ฏผํ์ด๊ฐ ๋งํ ์๊ฐ ๋ช ์คํธ๋ผ์ดํฌ ๋ช ๋ณผ์ธ์ง๋ฅผ ๋ตํด์ค๋ค.
- ๋ฏผํ์ด๊ฐ ์์์ ์ธ ์๋ฆฌ ์๋ฅผ ์ ํํ๊ฒ ๋ง์ถ์ด 3 ์คํธ๋ผ์ดํฌ๊ฐ ๋๋ฉด ๊ฒ์์ด ๋๋๋ค. ์๋๋ผ๋ฉด ๋ฏผํ์ด๋ ์๋ก์ด ์๋ฅผ ์๊ฐํด ๋ค์ ์์์๊ฒ ๋ฌป๋๋ค.
ํ์ฌ ๋ฏผํ์ด์ ์์๋ ๊ฒ์์ ํ๊ณ ์๋ ๋์ค์ ์๋ค. ๋ฏผํ์ด๊ฐ ์์์๊ฒ ์ด๋ค ์๋ค์ ๋ฌผ์ด๋ณด์๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ๋ฌผ์์ ์์๊ฐ ์ด๋ค ๋๋ต์ ํ๋์ง๊ฐ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค. ์ด ์ ๋ ฅ์ ๋ฐํ์ผ๋ก ์ฌ๋ฌ๋ถ์ ์์๊ฐ ์๊ฐํ๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์๊ฐ ์ด ๋ช ๊ฐ์ธ์ง๋ฅผ ์์๋งํ์ผ ํ๋ค.
์๋์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์.
- ๋ฏผํ: 123
- ์์: 1 ์คํธ๋ผ์ดํฌ 1 ๋ณผ.
- ๋ฏผํ: 356
- ์์: 1 ์คํธ๋ผ์ดํฌ 0 ๋ณผ.
- ๋ฏผํ: 327
- ์์: 2 ์คํธ๋ผ์ดํฌ 0 ๋ณผ.
- ๋ฏผํ: 489
- ์์: 0 ์คํธ๋ผ์ดํฌ 1 ๋ณผ.
์ด๋ ๊ฐ๋ฅํ ๋ต์ 324์ 328, ์ด๋ ๊ฒ ๋ ๊ฐ์ง์ด๋ค.
์์๋ ๋์๋ฆฌ์ ๊ท์จ์ ์ ๋ฐ๋ฅด๋ ์ฐฉํ ์์ด๋ผ ๋ฏผํ์ด์ ๋ฌผ์์ ๊ณง์ด๊ณง๋๋ก ์ ์งํ๊ฒ ๋ตํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์์์ ๋ต๋ค์๋ ๋ชจ์์ด ์๋ค.
๋ฏผํ์ด์ ๋ฌผ์๋ค๊ณผ ๊ฐ๊ฐ์ ๋ฌผ์์ ๋ํ ์์์ ๋ต์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋ ์์๊ฐ ์๊ฐํ๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ต์ ์ด ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ๋ฏผํ์ด๊ฐ ์์์๊ฒ ๋ช ๋ฒ์ด๋ ์ง๋ฌธ์ ํ๋์ง๋ฅผ ๋ํ๋ด๋ 1 ์ด์ 100 ์ดํ์ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ค. ์ด์ด์ง๋ N๊ฐ์ ์ค์๋ ๊ฐ ์ค๋ง๋ค ๋ฏผํ์ด๊ฐ ์ง๋ฌธํ ์ธ ์๋ฆฌ ์์ ์์๊ฐ ๋ตํ ์คํธ๋ผ์ดํฌ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์์ ๋ณผ์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์, ์ด๋ ๊ฒ ์ด ์ธ ๊ฐ์ ์ ์๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ ์ค์ ์์๊ฐ ์๊ฐํ๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ต์ ์ด ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
2%์์ ํ๋ ธ์ต๋๋ค ๊ฐ ๋ฌ๋ค๋ฉด
์ ๋ต์ด ๋ ์ ์๋ ์ซ์๋
์ซ์ 0์ด ํฌํจ๋์ง ์๊ณ ์๋ก๋ค๋ฅธ ์ซ์๋ค๋ก ์ด๋ฃจ์ด์ ธ์ผํ๋ค๋
์กฐ๊ฑด์ด ์๋ค๋์ ์ ์ ์ํ์
4%์์ ํ๋ ธ์ต๋๋ค ๊ฐ ๋ฌ๋ค๋ฉด
์ซ์์ด์ 0์ด ํฌํจ๋์ง ์์์ผํ๋ค๋ ์กฐ๊ฑด์ ์ ์ํ์
(๋ณธ ํ์ด์์๋ int ๊ฐ ์๋ string์ผ๋ก ์ฒ๋ฆฌํด์คฌ๊ธฐ์ ansString[0]=='0' ์ด๋ฉด ์ ์ธ์ํค๋๋ก ์ฝ๋๋ฅผ ์งฐ๋ค.)
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;
struct input {
string number;
int strike;
int ball;
};
int n;
vector<input> v;
// ์ ๋ต๋ฌธ์์ด์ด i๋ฒ์งธ ์ผ์ด์ค์ ํด๋นํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํํ๋ ํจ์
bool isCaseRight(int i, string ansString) {
string num = v[i].number;
int b=0, s=0;
for(int j=0; j<3; j++) {
for(int k=0; k<3; k++) {
if(num[j]==ansString[k]) {
if(j==k)
s++;
else
b++;
}
}
}
if(b==v[i].ball && s==v[i].strike)
return true;
return false;
}
// i๊ฐ์ ์ผ์ด์ค์ค ๋จ ํ๋๋ผ๋ ์๋ง์ผ๋ฉด false
bool isNumRight(string ansString) {
for(int i=0; i<n; i++)
if(!isCaseRight(i, ansString))
return false;
return true;
}
int solution() {
int ans=0;
for(int i=123; i<999; i++) {
// ๋ต์ด๋ ์ ์๋ ๋ฌธ์์ด๋ค์ ์ ๋ถ ๋ค ๋์๋ณธ๋ค. (๋ถ๋ฅดํธํฌ์ค)
string ansString = to_string(i);
// ๋ต ์ซ์์ด์๋ ์ซ์ 0์ ์ ์ธํ ์๋ก ๋ค๋ฅธ ์ซ์๋ก ์ด๋ฃจ์ด์ ธ์์ด์ผํ๋ค.
if(ansString[0]=='0' || ansString[1]=='0' || ansString[2]=='0')
continue;
if(ansString[0]==ansString[1] || ansString[1]==ansString[2] || ansString[2]==ansString[0])
continue;
if(isNumRight(ansString))
ans++;
}
return ans;
}
int main() {
ios_base :: sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n;
for(int i=0; i<n; i++) {
string n;
int s,b;
cin >> n >> s >> b;
v.push_back({n,s,b});
}
cout << solution();
return 0;
}
/*
*/
'๐ฒ Altu-Bitu > ๊ตฌํ&์๋ฎฌ๋ ์ด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S2][C++] ๋ฐฑ์ค 3085๋ฒ: ์ฌํ ๊ฒ์ (0) | 2022.11.07 |
---|---|
[BOJ S4][C++] ๋ฐฑ์ค 1244๋ฒ: ์ค์์น ์ผ๊ณ ๋๊ธฐ (0) | 2022.10.17 |
[BOJ G5][C++] ๋ฐฑ์ค 20055๋ฒ: ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด (0) | 2022.10.03 |
[BOJ S1][C++] ๋ฐฑ์ค 20923๋ฒ: ์ซ์ ํ ๋ฆฌ๊ฐ๋ฆฌ ๊ฒ์ (0) | 2022.09.30 |
[BOJ][C++] ๋ฐฑ์ค 14891๋ฒ: ํฑ๋๋ฐํด (0) | 2022.09.20 |