티스토리 뷰

 
문제 설명

단어 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