본문 바로가기

c++/프로그래머스 1 Lv

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

문제

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두 글자를 반환하면 됩니다.

 

제한사항

  • s는 길이가 1 이상, 100 이하인 스트링입니다.

 

문제 링크

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이[c++]

#include <string>

using namespace std;

string solution(string s) {
    string answer = "";
    int mid = s.length()/2;
    answer=s.length()%2?s.substr(mid,1):s.substr(mid-1,2);
    return answer;
}

숫자 길이가 짝수일 때와 홀수일 때가 다르다.

길이가 홀수, 예를 들어 5일 경우 5/2 == 2

길이가 짝수, 예를 들어 6일 경우 6/2 == 3

문자열은 0부터 시작하므로 홀수는 길이에서 나누기 2 한 값에서 1개를 , 짝수는 나누기 2 한 값에서 -1 한 값에서 2개를 끌어온다.