zyeon's 작심삼일 코딩 공부
프로그래머스 C++ [가운데 글자 가져오기] 본문
문제 설명
단어 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 에 작성한 코드 복기
출처: 프로그래머스 코딩 테스트 연습,
'코딩테스트-프로그래머스 > Lv.1' 카테고리의 다른 글
프로그래머스 C++ [같은 숫자는 싫어] (0) | 2024.05.29 |
---|---|
프로그래머스 C++ [2016년] (0) | 2024.05.29 |