프로그래머스 : 가운데 글자 가져오기

김아무개·2023년 3월 26일
0

프로그래머스

목록 보기
15/41

다른 사람 코드

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"));
    }
}

오잉 그러고보니
클래스 이름하고 실행 메소드 이름이 다르다
이런 형식의 풀이가 꽤 많이 보이는 것을 보면 예전엔 이런 형식으로 시행되었었나보다~~ 🤭

그건 그렇고

substring(word.length() - 1 / 2, word.length() / 2 + 1) 이라고 사용하면 될 문제였다.
짝수 홀수를 역 이용하는거였다.

문자가 abcd 4자 일 때

짝수는 가운데 2자가 필요 -> 필요한 시작 인덱스 : 1

length() = 4

length() / 2 - 1 = 2

(length() - 1) / 2 = 1

문자가 abc 3자일 때

홀수는 가운데 1자가 필요 -> 필요한 시작 인덱스 : 1

length() = 3

length() / 2 = 1

(length() - 1) / 2 = 1

마지막 인덱스는 둘다 length() / 2 + 1로 같음

그렇다면 두군데 모두에서 필요한 값을 가져올 수 있는 (length() - 1) / 2의 방식을 사용하는것이 좋다.

내 코드

class Solution {
    public String solution(String s) {
        int start = s.length() / 2 == 0 ? s.length() / 2 - 1 : s.length() / 2;
        int end   = s.length() / 2 + 1;
        return s.substring(start, end);
    }
}

처음 풀어본 날짜 : 23.03.26
다시 풀어본 날짜 : 23.03.27 ~ 28, 30

profile
Hello velog! 

0개의 댓글