Written on
·
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;
}
Answer 1
0
안녕하세요^^
최대 공통접두사라는 말에 다 포함되지 않나요?
모든 문자열의 최대 길이 공통접두사를 구하는 문제로 이해가 될 것 같은데요. 이 말을 더 자세하게 해달라는 건가요?
안녕하세요!
네네 저는 input이 ["aaaaaa", "aaa", "bbbbbb", "bb"]처럼 들어올 수도 있다고 생각했어요!
주어지는 N개의 문자열에는 적어도 같은 부분문자열이 1개 이상 있다는 조건이 있으면 더 정확하다고 생각했습니다.