문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
재한사항- s는 길이가 1 이상, 100이하인 스트링입니다.
class Solution {
public String solution(String s) {
String answer = "";
//문제에서 S는 길이가 1이상 100이하니까 음수와 0의 예외처리를 하지 않음.
//여기에서 s.length()/2 했을때 5자리 홀수면 2.5가 나와서 이상해보이지만
//String 클래스에서 length()는 리턴타입이 int로 반환해준다
//https://docs.oracle.com/javase/8/docs/api/index.html 오라클제공 자바 공식문서 사이트
//String에서 length의 리턴은 int로 명시되어있다.
//만약 좀 찝찝하면, int sLength = s.length();로 명시해주는것도 좋은 방법!
if(s.length()%2 == 0){
answer = s.substring((s.length()/2)-1,(s.length()/2)+1); //짝수일때 abcd에서
}else{
answer = s.substring((s.length()/2),(s.length()/2)+1);
}
return answer;
}
}
주석에도 적어두었지만 위의 코드가 가능한 이유는 String클래스의 .length()가 리턴타입이 int, 즉 정수타입이라 가능한것이고 조금 찝찝하다 싶으면 int sLength = s.length();로 명시해주면된다.
--다른사람 코드
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"));
}
}
반응형
'Study > Algorithm' 카테고리의 다른 글
프로그래머스-문자열을 정수로 바꾸기(java) (0) | 2022.07.15 |
---|---|
프로그래머스-두 정수 사이의 합(java) (0) | 2022.07.13 |
알고리즘 문제풀이 모음 (0) | 2022.07.08 |
프로그래머스-짝수와 홀수(java) (0) | 2022.07.07 |
프로그래머스-직사각형 별찍기(java) (0) | 2022.07.07 |