[CodingTest] 가운데 글자 가져오기

hye·2023년 2월 26일
0

AlgorithmTest

목록 보기
20/95

📖 Exam

문제 설명

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

제한 조건

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

sreturn
"abcde""c"
"qwer""we"

✍ Answer

class Solution {
    public String solution(String s) {
        String[] arr = s.split("");
        int i = arr.length/2;
        return arr.length%2==0 ? arr[i-1]+arr[i] : arr[i];
    }
}

💡 Realization

  • 문제를 정답률순으로 풀고 있는데 급 난이도가 쉬워져서 당황.
    그런데 배열로 미리 만들어두기 때문에 시간이 걸리는건가 통과 기준에서 생각보다 시간 지연이 생겨서 당황.
    테스트 6 〉 통과 (2.78ms, 79.8MB) 최대 이렇게 뜨더라.
    그리고 솔루션 생각해놨다고 중간값은 뭔가 때려맞추는 식으로 값을 찾아서 이 부분에 대한 아쉬움이 남는다.
    그리고 다른 분 코드 보면서 내가 처음 풀었던 풀이와 똑같이 적었는데 내가 안되었던 이유를 찾아서보니 중간 조건문 잘못 생각했던게 있어서 제대로 구현이 안되던거였다.
    이해하고 바로 수정했다.

substring(a,b)

class StringExercise{
    String getMiddle(String word){
	return word.substring((word.length()-1)/2, word.length()/2 + 1);
	}
}

s 길이가 1일 때도 오류가 나지않는다.
substring(a,b)에서 a이상 b미만이라 b가 배열 범위 밖이어도 오류가 안나는 듯

참고사이트: https://school.programmers.co.kr/learn/courses/30/lessons/12903/solution_groups?language=java

profile
Junior Backend Developer

0개의 댓글