작성
·
230
0
안녕하세요 강사님
강의 잘 듣고 있습니다.
강사님 강의를 보기 전에 제가 스스로 풀었던 내용입니다.
https://www.acmicpc.net/source/66606871
문제의 예시와 첫 글자 z도 다 잘 출력 되었는데 어디서 실패하는건지 모르겠어서 여쭤봅니다...!
답변 1
0
안녕하세요 성관님 ㅎㅎ
문제를 볼까요?
선발할 수 있는 경우에는 가능한 성의 첫 글자를 사전순으로 공백없이 모두 출력한다.
사전순으로 출력해야 합니다.
반례는 다음과 같습니다.
10
b
b
b
b
b
a
a
a
a
a
답 : ab
코드리뷰
void findPlayer(string input,string d){
pair<string, int> a;
int count=0;
if(input.length()>0){
while (input.find(d) != string::npos)
{
int pos = input.find(d);
input.erase(pos, 1);
count++;
}
a = {d, count};
charCount.push_back(a);
findPlayer(input, input.substr(0,1));
}
}
앞의 코드를 보시면 재귀함수가 있는 것을 볼 수 있는데요.
재귀함수는 되도록이면 피하시는게 좋습니다. 물론 재귀함수가 필요한 경우에는 그래야 하지만..
재귀함수 없이도 충분히 해당 로직은 짤 수 있기 때문에 해당 부분 제외하고 로직을 구축하는 것을 추천드립니다.
for (int i = 0; i < num;i++){
string input;
cin >> input;
token += input[0];
}
앞의 코드와 같은 부분은 너무나 좋습니다. ㅎㅎ
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.