문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두 글자를 반환하면 됩니다.
재한사항- s는 길이가 1 이상, 100이하인 스트링입니다.
s | return |
"abcde" | "c" |
"qwer" | "we" |
Solution
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
if (s.length() & 1 == 1) {
answer = s.at(s.length() / 2);
} else {
answer += s.at(s.length() / 2 - 1);
answer += s.at(s.length() / 2);
}
return answer;
}
남의 코드
#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);
}
후기
홀 짝을 구분할 때 가장 좋은 방법은 & 1 == 1의 조건을 붙이는 것이다. 남의 코드에서처럼 삼항연산자를 사용하는 방법도 좋아 보인다.
그리고 나는 얼른 Level 1을 모두 마친 후 Level 2를 모두 마치고 Level 3 4 5 모두 마치러 가야겠다.
(url: https://programmers.co.kr/learn/courses/30/lessons/12903)
728x90
'연습장' 카테고리의 다른 글
2018 KAKAO BLIND RECRUITMENT > [1차] 비밀지도 (0) | 2021.12.02 |
---|---|
2018 KAKAO BLIND RECRUITMENT > [1차] 다트 게임 (0) | 2021.12.02 |
연습문제 > 나누어 떨어지는 숫자 배열 (0) | 2021.12.01 |
연습문제 > 두 정수 사이의 합 (0) | 2021.12.01 |
연습문제 > 문자열 내 p와 y의 개수 (0) | 2021.11.30 |