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) {
string answer = "";
int i=0;
int m;
while(s[i])
i++;
m=i/2-1;
if (i%2==1)
answer=s[i/2];
else {
for(int j=0; j<2; j++){
answer=s.substr(i/2-1, 2);
}
}
return answer;
}
substr
basic_string substr(size_type pos = 0, size_type count = npos) const;
문자열의 일부를 리턴한다...
문자열의 pos 번째 문자 부터 count 길이 만큼의 문자열을 리턴한다. 만약에, 인자로 전달된 부분 문자열의 길이가 문자열 보다 길다면, 그 이상을 반환하지 않고 문자열의 끝 까지만 리턴한다.
또한, count 로 npos 를 전달한다면, 자동으로 pos 부터 원래 문자열의 끝 까지 리턴한다.
인자
-
pos : 첫번째 문자의 위치 (원래 문자열에서)
-
count : 부분 문자열의 길이
리턴값
원래 문자열에서 [pos, pos + count) 까지의 문자열을 반환한다.
예외
만일 pos 가 원래 문자열의 길이보다 길다면 std::out_of_range 예외를 발생시킨다.
시간 복잡도
요청한 부분 문자열의 길이 (count) 에 비례한다.
C++ 레퍼런스 - string 의 substr 함수
modoocode.com
'Programming > Algorithm (C++)' 카테고리의 다른 글
[프로그래머스 1단계] c++: : 문자열을 정수로 바꾸기 (0) | 2021.03.01 |
---|---|
[프로그래머스 1단계] c++ :: 소수 찾기 (에라토스테네스의 체) (0) | 2021.03.01 |
[프로그래머스 레벨1] c++ :: 두개 뽑아서 더하기 (2) | 2021.02.28 |
[백준 2579] c++ :: 계단 오르기 (0) | 2021.02.07 |
[백준 9184] c++ :: 신나는 함수 실행 (0) | 2021.02.07 |