Code KATA/알고리즘 코드카타

[2024.12.31] 가운데 글자 가져오기

iiblueblue 2024. 12. 31. 12:21

문제 설명

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

 

 

제한사항

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

 

 

입출력 예

s return
"abcde" "c"
"qwer" "we"

 

 

문제 풀이

풀이 언어 : C++

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    string answer = "";
    int s_length=s.length(); // s의 길이
    
    // s의 길이가 짝수일 때
    if(s_length%2==0)
    {
        answer=s.substr(s_length/2-1, 2); // 가운데 두 글자 추출
    }
    else // s의 길이가 홀수일 때
    {
        answer=s.substr(s_length/2, 1); // 가운데 한 글자 추출
    }
    return answer;
}

 

 

매개변수로 들어온 s의 가운데 글자를 가져오기 전에 일단 확인해야 하는 것이 있다. s의 길이가 짝수인지 홀수인지인데 그 차이에 따라 몇 글자를 어떻게 가져올지가 다르기 때문이다. 그래서 일단 length() 함수를 이용해서 s의 길이를 저장한다.

 

짝수일 경우 가운데 두 글자를 추출한다. substr을 이용하여 s_length/2-1번째 글자부터 2개를 가져와서 answer에 저장한다. 반대로 홀수일 경우 강누데 한 글자만 추출한다. substr을 이용하여 s_length/2번째 글자부터 1개를 가져와서 answer에 저장한다. 마지막으로 answer을 반환하면 된다.

 

 

문제 링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr