Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

zyeon's 작심삼일 코딩 공부

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

코딩테스트-프로그래머스/Lv.1

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

젼뀨 2024. 5. 29. 21:34

문제 설명

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


제한 사항

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

입출력 예

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

 


문제 풀이

 

이 문제는 조건문을 이용해 간단하게 풀이할 수 있다.

밑에 코드는 내가 과거에 if문을 사용해서 작성한 코드이다. 

#include <string>
#include <vector>

using namespace std;

string solution(string s) {
    string answer = "";
    
    if(s.length() % 2 == 0){
        answer += s[s.length()/2 - 1];
        answer += s[s.length()/2];
    }
    else{
        answer += s[s.length()/2];
    }
    
    return answer;
}

 

하지만 이런 간단한 조건식은 삼항연산자를 사용하면 한줄로 만들 수 있기 때문에,

삼항연산자를 사용해 재작성해 보았다.

또, s.substr(pos, len)는 pos에서 시작하는 len길이의 문자열을 리턴하는 함수이다.

#include <string>
#include <vector>

using namespace std;

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

 

2021-05-06 에 작성한 코드 복기

 

 

 

 

 

출처: 프로그래머스 코딩 테스트 연습, 

https://school.programmers.co.kr/learn/challenges