[ C++ ] 프로그래머스: 가운데 글자 가져오기
✏️ PS/Programmers

[ C++ ] 프로그래머스: 가운데 글자 가져오기

반응형

 

안녕하세요? 수구리입니다.

이번 포스팅에서는 프로그래머스 문제인 가운데 글자 가져오기에 대한 문제입니다.

문자열을 다루는 함수에 대해서 알아보도록 하겠습니다~

 

 

[ 문제 ] 프로그래머스: 가운데 글자 가져오기

https://programmers.co.kr/learn/courses/30/lessons/12903

 

코딩테스트 연습 - 가운데 글자 가져오기

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret

programmers.co.kr

 

 

[ 나의 풀이 ]

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    
    int len = s.length();
    if (len % 2 == 0) {
        return s.substr((len/2)-1, 2);
    } else {
        return s.substr(len/2, 1);    
    }
    
}

 

 

 

 

[ 설명 ]

1. 입력으로는 문자열이 들어온다.

2. 우선 문자열의 길이를 구해서 len이라는 변수에 저장한다.

3. 문제의 조건에 의해서 길이가 짝수일 때와 홀수일 때 경우를 나누어서 결과를 리턴해준다.

4. 짝수인 경우는 2로 나누었을 때 나머지가 0이므로, 시작 지점은 (길이 / 2 - 1)이고 문자 2개를 리턴해야 하므로 시작 지점부터 2개를 반환하도록 한다.

5. 홀수인 경우는 2로 나누었을 때 나머지가 1이므로, 시작 지점은 (길이 / 2) 이고 문자는 1개를 리턴해야 하므로 시작 지점부터 1개를 반환하도록 한다.

 

 

str.substr() 함수

basic_string
      substr(size_type __pos = 0, size_type __n = npos) const
      { return basic_string(*this,
			    _M_check(__pos, "basic_string::substr"), __n); }

basic_string.h에 있는 substr 이라는 함수의 형태입니다.

첫 번째 인자 : 시작 위치

두 번째 인자 : 시작 위치부터 몇개의 문자를 리턴할 것인지?

반환 값은 str 형태입니다.

 

이상으로 substr 함수에 대해서 알아보았습니다.

감사합니다.

 

 

 

반응형