구현 방식
- 처음에 입력을 받을 때 행을 담은 벡터로 담지 말고, 열을 담은 벡터로 담는다.
- 그렇게 하고, 앞 문자를 하나씩 제거한 부분 문자열을
set
에다 담아서 탐색을 한다.
코드
#include <bits/stdc++.h>
using namespace std;
void solution(int R, vector<string>& columns);
int main() {
int R, C;
cin >> R >> C;
vector<string> columns(C,"");
for (int r = 0; r < R; r++)
{
for (int c = 0; c < C; c++)
{
char cc;
cin >> cc;
columns[c] += cc;
}
}
solution(R, columns);
}
void solution(int R, vector<string>& columns)
{
int counter = 0;
for (int idx = 1; idx < R; idx++)
{
set<string> s;
for (auto& c : columns)
{
string subColumn = c.substr(idx, c.size() - idx);
if (s.find(c.substr(idx, c.size() - idx)) != s.end())
{
cout << counter;
return;
}
else
s.insert(subColumn);
}
counter++;
}
cout << counter;
}