티스토리 뷰


N마리의 점소, N마리의 점 없는 소가 있고 각자 M개의 유전자를 가지고 있다

이 때 M개중 3개를 골라서 비교했을 때 점O소와 점X소를 비교 가능한 줄이 몇개 있는지 찾는 문제다!


set을 이용해서 완탐을 했다!

점O소 의 DNA M개중 몇 번째 줄을 볼지 정하고 그 값들을 모두 set에 넣어버린다


그리고 점X소 중 만약 set에 있는 값을 가지고 있는 것이 있다면 건너뛰고 하나도 없다면 구별 가능하므로 답을 세준다!


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
 
char str[1010][55];
int n, m;
set<pair<pair<intint>int>> s;
 
int main() {
    scanf(" %d %d"&n, &m);
    for (int i = 0; i < n * 2; i++scanf(" %s"&str[i]);
    int ans = 0;
    for (int i = 0; i < m; i++) {
        for (int j = i + 1; j < m; j++) {
            for (int k = j + 1; k < m; k++) {
                s.clear();
                bool ok = true;
                for (int q = 0; q < n; q++) s.insert({ {str[q][i],str[q][j]},str[q][k] });
                for (int q = n; q < n * 2; q++) {
                    if (s.count({ {str[q][i],str[q][j]},str[q][k] })) {
                        ok = false;
                    }
                }
                if (ok)ans++;
            }
        }
    }
    printf("%d\n", ans);
}
cs


'알고리즘 > BOJ' 카테고리의 다른 글

[백준] 1184 귀농  (2) 2018.07.03
[백준] 3042 트리플렛  (0) 2018.07.02
[백준] 5014 스타트링크  (0) 2018.07.02
[백준] 1697 숨바꼭질  (0) 2018.07.02
[백준] 2178 미로탐색  (0) 2018.07.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함