작성
·
206
0
1회 1번 공통 문자열 문제에서 N개의 모든 문자열에서 같은 부분 문자열을 가지고 있다는 설명이 없어서 아래와 같이 unordered_map으로 어렵게 풀이하였습니다. 출제 의도에 맞게 N개의 모든 문자열에서 같은 부분 문자열이 있다고 적혀있으면 더 좋을 것 같아요!
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
freopen("input.txt", "rt", stdin);
unordered_map<string, int> uM;
string str, answer;
int t, max = 0;
cin >> t;
while (t--) {
cin >> str;
string temp;
for (int i = 0; i < str.size(); i++) {
temp += str[i];
uM[temp]++;
}
}
for (auto iter = uM.begin(); iter != uM.end(); iter++) {
if (max < iter->second) max = iter->second;
}
for (auto iter = uM.begin(); iter != uM.end(); iter++) {
if (iter->second == max && (answer.size() < (iter->first).size())) answer = iter->first;
}
cout << answer;
return 0;
}
안녕하세요!
네네 저는 input이 ["aaaaaa", "aaa", "bbbbbb", "bb"]처럼 들어올 수도 있다고 생각했어요!
주어지는 N개의 문자열에는 적어도 같은 부분문자열이 1개 이상 있다는 조건이 있으면 더 정확하다고 생각했습니다.