인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박주원님의 프로필 이미지
박주원

작성한 질문수

코딩테스트 실전 모의고사(with C++) : 대기업 대비

1회 1번 공통 문자열 문제 설명 보충하시면 더 좋을 것 같습니다!

작성

·

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;

}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

최대 공통접두사라는 말에 다 포함되지 않나요?

모든 문자열의 최대 길이 공통접두사를 구하는 문제로 이해가 될 것 같은데요. 이 말을 더 자세하게 해달라는 건가요?

박주원님의 프로필 이미지
박주원
질문자

안녕하세요!

네네 저는 input이 ["aaaaaa", "aaa", "bbbbbb", "bb"]처럼 들어올 수도 있다고 생각했어요!

주어지는 N개의 문자열에는 적어도 같은 부분문자열이 1개 이상 있다는 조건이 있으면 더 정확하다고 생각했습니다.

김태원님의 프로필 이미지
김태원
지식공유자

네^^ 알겠습니다. 

박주원님의 프로필 이미지
박주원
질문자

빠른 답변 감사합니다. 이전 강의부터 잘 듣고 있습니다. 좋은 밤 되세요!

박주원님의 프로필 이미지
박주원

작성한 질문수

질문하기