문자열이 홀수인 경우 => "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;
}
length()는 문자열의 길이를 리턴한다. 홀수인 경우는 중간에 하나만 가져오면 된다.
"a" => length()/2 => s[0]
"abc" => length()/2 => s[1]
"abcde" => length()/2 => s[2] 이런 식으로 /2만으로 중간값을 가져올 수 있다.
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개만큼 리턴하는 함수다.
[2020카카오공채] 문자열 압축(C++) (0) | 2019.11.13 |
---|---|
프로그래머스 Level 2 - 쇠막대기(C++) (0) | 2019.10.12 |
프로그래머스 Level 2 - 탑(C++) (0) | 2019.10.12 |
프로그래머스 Level 1 - 같은 숫자는 싫어(C++) (0) | 2019.10.07 |
프로그래머스 Level 1 - 시저 암호(C++) (0) | 2019.09.27 |