프로그래머스
[프로그래머스 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;
}
}
🔥 문제 풀이 과정
- s의 길이를 2로 나눴을 때 나머지가 0 이면 짝수이고, 0이 아니라면 홀수로 if else 조건을 나눴다
- 짝수 일 때 가운데 숫자를 알려면 s의 길이를 2로 나눴을 때 몫과 몫+1을 해주면 가운데 2글자를 알 수 있다
- 근데 subString은 0부터 시작하니까 시작점을 몫 -1을 해주었고 끝나는 지점은 자르고자 하는 index 바로 뒤까지 값을 넣어줘야 해서 +1을 해주었다
- 홀수 일 때도 마찬가지로 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