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

태로미·2023년 9월 18일
0

Programmers

목록 보기
19/29
post-thumbnail

❓문제


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



🚫제한


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


💻입출력 예


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













📝해결


1. for문

class Solution {
  public String solution(String s) {

    String answer = "";
    String[] arr = s.split("");

    for(int i=0; i<arr.length; i++) {
      if(s.length() % 2 != 0) {
        answer = arr[s.length()/2];
      }
      if(s.length() % 2 == 0 && i + (i+2) == s.length()) {
        answer = arr[i] + arr[i+1];
      }
    }

    return answer;
  }
}
  • 배열의 길이가 홀수라면, 가운데 글자 하나만 리턴하면 되므로
    "배열의 길이/2" 의 index값이 answer.
  • 배열의 길이가 짝수라면, 가운데 두 글자 출력이므로 조건을 하나 더 추가함.
  • 문자열의 길이가 8, return 돼야 하는 index는 3,4 (8 = (3+4) +1),
    문자열의 길이가 8, return 돼야 하는 index는 2,3 (6 = (2+3) + 1),
    일련의 규칙이 보여서 이걸 코드로 표현해보면 i + (i+2) == s.length().
    • 위의 조건이 맞을 때 배열 answer의 i와 i+1의 값을 return.

2. subString

class Solution {
  public String solution(String s) {
  
  	int mid = s.length() / 2;

	if (s.length() % 2 == 0) {
    	return s.substring(mid-1, mid+1);
	}

	return s.substring(mid, mid+1);
  }
}  
  • 주어진 문자열을 반으로 나눈 값을 저장해두고, 문자열의 길이가 짝수인지 아닌지 판별하여 mid에 저장.
  • 배열의 길이가 짝수라면 가운데 두 글자를 return해야 하므로,
    subString()을 사용하여 mid의 값을 인덱스 삼아서,
    짝수는 하나 작은것부터 두 개의 문자열을 잘라서 return.
  • 홀수는 가운데 글자 한 글자만 return.






💭마무리

  • Level_1 / 18:02
  • Point
    – index & 배열의 길이 활용
    – subString() 메서드

나는 정말 정통파로^^,,,일련의 규칙을 찾아서 그걸 조건식으로 삼아 풀었는데,,,
subString() 메서드를 사용하니 이렇게 간단하다ㅎㅎㅎㅎ
그래도 문제를 풀었다는 것에 의의를 두고,,,
앞으로는 효율적으로 푸는 방법도 고민해봐야겠다,,,😂😂😂


profile
Here And Now

0개의 댓글