[Programmers] 프로그래머스 문제풀이 가운데 글자 가져오기
정말 쉬우니 한 번 스스로 풀어보는 것을 권장합니다.
문제는 여기서 풀어볼 수 있습니다.
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
s | return |
---|---|
“abcde” | “c” |
“qwer” | “we” |
풀이
단순하게 주어진 문자열에서 가운데에 위치한 문자를 가져오는 문제이다. 문자열의 길이가 홀수라면 가운데 한 글자만, 짝수라면 가운데 두 글자를 가져오면 된다.
Go
func solution(s string) string {
return s[int(float64(len(s)) / 2 - 0.5):int(float64(len(s)) / 2 + 1)]
}
Python
def solution(str):
return str[(len(str)-1)//2:len(str)//2+1]
Java
class Solution {
public String solution(String word) {
return word.substring((word.length()-1) / 2, word.length()/2 + 1);
}
}
Kotlin
class Solution {
fun solution(s: String) =
with(s) { substring(length / 2 - 1 + (length % 2) .. length / 2) }
}
JavaScript
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
char* solution(const char* s) {
char* answer = (char*)malloc(1);
char arr[strlen(s)];
char arrs[3];
strcpy(arr, s);
int k = strlen(s);
int i = 0, j = 0;
if(k % 2 == 0) {
j = k / 2, i = j - 1;
arrs[0] = arr[i];
arrs[1] = arr[j];
} else {
i = k /2;
arrs[0] = arr[i];
}
strcpy(answer, arrs);
return answer;
}
C++
#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);
}