• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

String 타입 연산

22.07.06 17:28 작성 조회수 196

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

강민철님의 프로필

강민철

2022.07.07

안녕하세요, 혹시 배열 s는 무엇인가요?

전체 소스 코드를 보여주실 수 있으실까요?

(어떤 강의에서 생긴 의문인지 말씀해주시면 더욱 상세한 답변이 가능합니다^^)

IEYEI님의 프로필

IEYEI

질문자

2022.07.08

강의 듣고 알고리즘 문제를 풀면서 생긴 질문입니다.

주어진 문자열의 중앙값을 출력하는 문제인데 string s 에 어떤 문자열이 들어와도 "?"로 변해버리네요

IEYEI님의 프로필

IEYEI

질문자

2022.07.08

#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;
}

 
강민철님의 프로필

강민철

2022.07.09

아래와 같이 작성하면 "?"가 뜨지 않습니다.

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;
}