인프런 커뮤니티 질문&답변
String 타입 연산
작성
·
305
0
string answer = "";
answer = s[s.length() / 2 - 1];
answer = answer + s[s.length() / 2];
string answer = "";
answer = s[s.length() / 2 - 1] + s[s.length() / 2];
위에거는 제대로 나오는데 아래거는 "?"로 나오네요.
차이점이 무엇일까요?
답변 1
1
IEYEI
질문자
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
if(s.length() % 2 == 0)
{
answer = s[s.length() / 2 - 1];
answer = answer + s[s.length() / 2];
}
else
{
answer = s[s.length() / 2];
}
return answer;
}
|
|
아래와 같이 작성하면 "?"가 뜨지 않습니다.
main 함수가 잘못 작성되었거나 include가 누락되었는지 확인바랍니다.
#include <string>
#include <vector>
#include<iostream>
using namespace std;
string solution(string s) {
string answer = "";
if (s.length() % 2 == 0)
{
answer = s[s.length() / 2 - 1];
answer = answer + s[s.length() / 2];
}
else
{
answer = s[s.length() / 2];
}
return answer;
}
int main()
{
string param = "abc";
string sol1 = solution(param);
cout << sol1 << endl;
string param2 = "def";
string sol2 = solution(param2);
cout << sol2 << endl;
}





강의 듣고 알고리즘 문제를 풀면서 생긴 질문입니다.
주어진 문자열의 중앙값을 출력하는 문제인데 string s 에 어떤 문자열이 들어와도 "?"로 변해버리네요