level 1. 가운데 글자 가져오기 (java)
10 Jun 2017 | 알고리즘 프로그래밍문제
getMiddle메소드는 하나의 단어를 입력 받습니다.
단어를 입력 받아서 가운데 글자를 반환하도록 getMiddle메소드를 만들어 보세요. 단어의 길이가 짝수일경우 가운데 두글자를 반환하면 됩니다.
예를들어 입력받은 단어가 power이라면 w를 반환하면 되고, 입력받은 단어가 test라면 es를 반환하면 됩니다.
풀이코드
- 인자로 주어진 stirng의 길이를 구하여, .length()
- 홀수인 경우 문자열.charAt(위치)를 활용하여 가운데 글자를 char 자료형으로 가져온다.
- 이 경우 함수의 리턴 자료형이 String 이기 때문에 오류가 발생한다.
- char -> String 으로 변환하는 가장 효율적인 방법은 Character.toString(대상) 이다.
- 짝수인 경우 문자열.substring(시작, 끝)으로 가운데 글자들을 String 자료형으로 가져올 수 있다.
class StringExercise{
String getMiddle(String word){
int len = word.length();
if (len % 2 == 1){
// return word.charAt(len/2)+"";
// char > Stirng 형변환
// Least efficient and most memory-inefficient, but common amongst beginners because of its simplicity
return Character.toString(word.charAt(len/2)); // Most efficient way
}else{
return word.substring(len/2-1, len/2+1);
}
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args){
StringExercise se = new StringExercise();
System.out.println(se.getMiddle("power"));
}
}
다른사람 코드
- .substring() 메소드를 활용하면 Stirng 으로 리턴값을 받을 수 있다.
- 3항 연산자를 활용한다.
class StringExercise{
String getMiddle(String word){
int length = word.length();
int index = length / 2;
return (length%2==0) ? word.substring(index-1, index+1) : word.substring(index, index+1);
}
// 아래는 테스트로 출력해 보기 위한 코드입니다.
public static void main(String[] args){
StringExercise se = new StringExercise();
System.out.println(se.getMiddle("power"));
}
}