- [ 문제 ]
더보기

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

문자열에 길이에따라 ( 짝수 or 홀수 ) 홀수면 문자열에 가운데 요소를, 짝수면 가운데 2요소를 반환하는 문제였습니다.
쉬운 문제이지만, C++로 알고리즘을 공부한 사람에겐 확인하고 갈 함수가 하나 있었죠.
- My Code
#include <string> #include <vector> using namespace std; string solution(string s) { string answer = ""; int len = s.length()/2; if (s.length() % 2 == 0) { answer.push_back(s[len - 1]); answer.push_back(s[len]); } else { answer.push_back( s[len]); } return answer; }
- Better Code
#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); } }
- So Simple Code
#include <string> using namespace std; string solution(string s) { return s.length()&1 ? s.substr(s.length()*0.5,1) : s.substr(s.length()*0.5-1,2); }
- [ CheckPoint ]
- string.substr( 시작위치(int) , 시작위치부터 몇개까지 자를것인가(int) ) 를 기억하자.
- 조건문을 사용하지 않고, 삼항연산자를 통해 초기조건을 숫자 1과 비트연산을 통해 홀수인지 짝수인지 판단할 수 있음을 확인하자.
728x90
반응형
'Algorithm Practice > [ 프로그래머스 ]' 카테고리의 다른 글
[ 프로그래머스 ] [ #12943 ] 콜라츠 추측 (0) | 2020.09.08 |
---|---|
[ 프로그래머스 ] [ #12926 ] 시저 암호 (0) | 2020.09.08 |
[ 프로그래머스 ] [ #12915 ] 문자열 내 마음대로 정렬하기 (0) | 2020.09.05 |
[ 프로그래머스 ] [ #42748 ] K번째 수 (0) | 2020.09.04 |
[ 프로그래머스 ] [ #12906 ] 같은 숫자는 싫어 (0) | 2020.09.03 |