문제 링크: https://www.acmicpc.net/problem/2866
그냥 문제에 써있는대로 풀면 됩니다
풀고 나서 다른사람들 풀이를 보니 이분탐색을 썼더라고요. 나중에 시간나면 이분탐색으로도 풀어보겠습니다. 지금은 귀찮아서리,,
#pragma GCC optimize ("Ofast")
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
char table[1000][1000];
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int r, c;
cin >> r >> c;
for (int i = 0; i < r; ++i)
for (int j = 0; j < c; ++j)
cin >> table[i][j];
set<string> s;
for (int j = 0; j < c; ++j) {
string str;
for (int i = 0; i < r; ++i)
str += table[i][j];
s.insert(str);
}
for (int i = 0; i < r-1; ++i) {
set<string> s2;
for (auto& str : s)
s2.insert(str.substr(1));
if (s2.size() != c) {
cout << i << '\n';
return 0;
}
s = move(s2);
}
cout << r - 1 << '\n';
return 0;
}
별로 효율적이지는 않지만 통과는 되는 버전입니다
반응형
'Online Judge > 백준' 카테고리의 다른 글
[백준][C++] 3107: IPv6 (0) | 2020.07.06 |
---|---|
[백준][C++] 2671: 잠수함식별 (0) | 2020.07.05 |
[백준][C++] 1089: 엘리베이터 (0) | 2020.07.03 |
[백준][C++] 4836: 춤 (0) | 2020.07.02 |
[백준][C++] 1043: 거짓말 (0) | 2020.06.29 |