Algorithm

[알고리즘] 프로그래머스 - 가운데 글자 가져오기

byeongoo 2020. 3. 30. 20:39

오늘 풀어본 문제는 프로그래머스의 가운데 글자 가져오기입니다.

1. 문제

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

2. 나의 코드

class Solution {
  public String solution(String s) {
      
      int len = s.length();
      String answer = "";
      
      if(isEven(len)){
          int start = s.length()/2 -1;
          answer = s.substring(start, start+2);
      } else{
          int start = s.length()/2;
          answer = s.substring(start, start+1);
      }
      

      return answer;
  }

  public boolean isEven(int num){
      if(num%2 == 0)
          return true;
      else
          return false;
  }
    
}

짝수일때와 홀수일때를 나눠서 빠르게 시작 지점을 파악하였습니다. String.substring(start.end)를 사용했는데 여기서 주의할 점으로는 end 전까지의 문자열을 잘라서 return해준다는 것입니다.

3. 다른 사람의 풀이

class StringExercise{
    String getMiddle(String word){

        return word.substring((word.length()-1) / 2, word.length()/2 + 1);    
    }
    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void  main(String[] args){
        StringExercise se = new StringExercise();
        System.out.println(se.getMiddle("power"));
    }
}

하지만 이렇게 짝수 홀수를 나누지 않더라도 한줄로 해결할 수 있습니다.