Algorithms
<프로그래머스 알고리즘문제> 가운데 글자 가져오기
seoca
2019. 1. 15. 14:02
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
재한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
s | return |
---|---|
abcde |
c |
qwer |
we |
Solution 1 in Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class Solution {
public String solution(String s) {
String answer = "";
int position = 0;
int length = 0;
if (s.length() % 2 == 0){
position = s.length() / 2 - 1;
length = 2;
}else if(s.length() % 2 == 1){
position = s.length() / 2;
length = 1;
}
answer = s.substring(position, position + length);
return answer;
}
}
|
cs |
substring() method is (include,exclude)
Solution 2 in Java
1
2
3
4
5
6
7
8
9
10
11
12
|
class Solution {
public String solution(String s) {
String answer = "";
int half = s.length()/2;
if(s.length() % 2 == 1){ //odd
answer = s.substring(half,half + 1);
}else if(s.length() % 2 == 0){ //even
answer = s.substring(half - 1,half + 1);
}
return answer;
}
}
|
cs |
Solution 3 in JavaScript
function Solution(prop) {
const middle = prop.length / 2;
// @ts-ignore
const first = Math.trunc(middle) + 1;
const second = first - 2;
for(let i = 0; i < prop.length; i++) {
if(prop.length % 2 === 0){
return (prop.slice(second, first))
} else {
return (prop[first-1]);
}
}
}
console.log(Solution("abc"));
Solution 4 in JavaScript
function solution(s) {
if(s.length%2 == 0){
return s.substr(s.length/2-1,2)
}else{
return s.substr(s.length/2,1)
}
}
function solution2(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
console.log(solution('123456'));
console.log(solution2('123'));
reference
https://programmers.co.kr