상세 컨텐츠

본문 제목

프로그래머스 Level 1 - 가운데 글자 가져오기(C++)

학생일기/알고리즘

by jaws99 2019. 9. 29. 00:31

본문

반응형

문자열이 홀수인 경우 => "abcde"는 "c"를 리턴하고,

문자열이 짝수 경우 => "abcd"는 중간 문자열 2개 "bc"를 리턴한다.

 

#include <string>
#include <vector>
using namespace std;

string solution(string s) {
    string answer = "";
    if(s.length()%2==1) answer += s[s.length()/2];
    else answer += s.substr(s.length()/2 - 1,2);
    return answer;
}

1. length()함수

length()는 문자열의 길이를 리턴한다. 홀수인 경우는 중간에 하나만 가져오면 된다.

"a" => length()/2 => s[0]

"abc" => length()/2 => s[1]

"abcde" => length()/2 => s[2] 이런 식으로 /2만으로 중간값을 가져올 수 있다.

2. substr()함수

substr(index,n)는 string의 index부터 n개를 가져온다.

"aa" => length()/2-1,2 => s[0]부터 2개

"abcd" => length()/2-1,2 => s[1]부터 2개

"abcdef" => length()/2-1,2 => s[2]부터 2개 이런식으로 string이 짝수일 때 처리할 수 있다.

 

+. 정답이 자꾸 틀릴 때,

substr(index1,index2)함수는 index1부터 index2까지 가져오는 함수가 아니라, index1부터 n개만큼 리턴하는 함수다. 

반응형

관련글 더보기