출처 프로그래머스
문자열의 가운데 문자를 반환하면 되는 문제이다.
길이가 짝수인 경우 문자 가운데 두 글자를 반환하는 것이 포인트이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
bool isOdd = s.size() % 2;
int index = int(s.length() / 2);
if (isOdd)
answer = s.at(index);
else {
answer = s.at(index - 1);
answer += s.at(index);
}
return answer;
}
|
6번줄의 bool isOdd = s.size() % 2;
문자열의 길이를 mod 2 연산을 하여 문자의 개수가 홀수인지 짝수인지 확인하였다.
그 후
홀수인 경우 문자열의 중간 문자를 반환하였고
짝수인 경우 중간의 두 문자를 스트링에 추가하여 반환하였다.
다 풀고 나서 코드를 좀 더 간단하게 할 수 있을 것 같아서 수정해보았다.
1
2
3
4
5
6
7
8
9
10
|
#include <string>
#include <vector>
using namespace std;
string solut123ion(string s) {
bool isOdd = s.size() % 2;
int index = s.length() / 2;
return isOdd ? s.substr(index,1) : s.substr(index - 1, 2);
}
|
STL string의 substr()를 이용해서
문자 개수가 홀수 인경우 중간의 1개를 반환시키고
문자 개수가 짝수인 경우 중간의 문자 2개를 반환시켰다.
'About > Algorithm' 카테고리의 다른 글
[프로그래머스][C++] 카카오 프렌즈 컬러링 북 (0) | 2020.03.28 |
---|---|
[프로그래머스][C++] 스킬트리 (0) | 2020.03.28 |
[프로그래머스][C++] 땅따먹기 (0) | 2020.03.28 |
[프로그래머스][C++] 124 나라의 숫자 (0) | 2020.03.26 |
[프로그래머스][C++, Python]소수 찾기 문제 ( 에라토스테네스의 체 ) (0) | 2020.03.26 |