diff --git "a/mj010504/Programmers/\353\271\204\353\260\200\354\275\224\353\223\234\355\225\264\353\217\205.cpp" "b/mj010504/Programmers/\353\271\204\353\260\200\354\275\224\353\223\234\355\225\264\353\217\205.cpp" new file mode 100644 index 0000000..5d5a5e1 --- /dev/null +++ "b/mj010504/Programmers/\353\271\204\353\260\200\354\275\224\353\223\234\355\225\264\353\217\205.cpp" @@ -0,0 +1,51 @@ +#include + +using namespace std; + +int m; +bool isValid(vector v, vector> q, vector ans) { + for(int i = 0; i < q.size(); i++) { + auto tv = q[i]; + int sum = 0; + + int a = 0, b = 0; + while(a < m && b < m) { + if(v[a] == tv[b]) { + sum++; + a++; b++; + } + + if(v[a] > tv[b]) b++; + + if(v[a] < tv[b]) a++; + } + + + if(sum != ans[i]) return false; + + } + + return true; +} + + + +int solution(int n, vector> q, vector ans) { + int res = 0; + m = q[0].size(); + + for(int a = 1; a <= n - 4; a++) { + for(int b = a + 1; b <= n - 3; b++) { + for(int c = b + 1; c <= n - 2; c++) { + for(int d = c + 1; d <= n -1; d++) { + for(int e = d + 1; e <= n; e++) { + vector v = {a, b, c, d, e}; + if(isValid(v, q, ans)) res++; + } + } + } + } + } + + return res; +} diff --git a/mj010504/README.md b/mj010504/README.md index ec4c260..f9b519f 100644 --- a/mj010504/README.md +++ b/mj010504/README.md @@ -10,3 +10,4 @@ | 7차시 | 2025.05.20 | 분할정복 | [유전법칙](https://school.programmers.co.kr/learn/courses/15008/lessons/121685)|(https://github.com/AlgoLeadMe/AlgoLeadMe-15/pull/28)| | 8차시 | 2025.06.15 | DP | [개근상](https://www.acmicpc.net/problem/1563)|(https://github.com/AlgoLeadMe/AlgoLeadMe-15/pull/35)| | 17차시 | 2025.08.07 | BFS | [촌수 계산](https://www.acmicpc.net/problem/2644)|(https://github.com/AlgoLeadMe/AlgoLeadMe-15/pull/65)| + | 18차시 | 2025.08.07 | 조합 | [비밀 코드 해독](https://school.programmers.co.kr/learn/courses/30/lessons/388352)|(https://github.com/AlgoLeadMe/AlgoLeadMe-15/pull/69)|