프로그래머스

[프로그래머스 JAVA] 가운데 글자 가져오기

뿌비 2024. 7. 10. 22:20
728x90

🔥 문제 설명

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

 

🔥 제한사항

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

 

🔥 입출력 예

s return
"abcde" "c"
"qwer" "we"

🔥 코드

class Solution {
    public String solution(String s) {
        String answer = "";
        int share = s.length() / 2;
        
        if((s.length() % 2) == 0){
            answer = s.substring(share-1, share+1);
        }else {
             answer = s.substring(share, share+1);
        }
        return answer;
    }
}

🔥 문제 풀이 과정

  1. s의 길이를 2로 나눴을 때 나머지가 0 이면 짝수이고, 0이 아니라면 홀수로 if else 조건을 나눴다
  2. 짝수 일 때 가운데 숫자를 알려면 s의 길이를 2로 나눴을 때 몫과 몫+1을 해주면 가운데 2글자를 알 수 있다
  3. 근데 subString은 0부터 시작하니까 시작점을 몫 -1을 해주었고 끝나는 지점은 자르고자 하는 index 바로 뒤까지 값을 넣어줘야 해서 +1을 해주었다
  4. 홀수 일 때도 마찬가지로 s의 길이를 2로 나눴을 때 몫과 나머지를 더한 값, 그 위치에 있는 문자열을 꺼내주었는데 어차피 subString은 0부터 시작해 애초에 -1 이니까 굳이 나머지는 더하지 않고 몫을 시작점으로 하고 +1을 해서 끝나는 지점을 정해주었다

🔥 substring()

java.lang.String 클래스의 substring() 메서드는 문자열의 특정 부분을 잘라내는 데 사용한다

substring() 메서드의 2가지 형태

public String substring(int startIndex)

public String substring(int startIndex, int endIndex)

 

 substring(int startIndex) 

startIndex부터 끝까지의 문자열을 리턴한다

인자값은 int 형으로 substring 하고자 하는 문자열의 앞에서부터 몇 번째 위치인가를 지정하는 값이다

substring(int startIndex, int endIndex) 

startIndex(포함)부터 endIndex(불포함)까지의 문자열을 리턴한다

첫 번째 입력받는 인자 값은 인자값이 한 개인 substring과 같이 가져올 문자열의 시작 부분을 지정한다


※ Reference

https://www.w3schools.com/java/ref_string_substring.asp

 

728x90