S.S.G
가운데 글자 가져오기 본문
[문제]
getMiddle메소드는 하나의 단어를 입력 받습니다. 단어를 입력 받아서 가운데 글자를 반환하도록 getMiddle메소드를 만들어 보세요. 단어의 길이가 짝수일경우 가운데 두글자를 반환하면 됩니다.
예를들어 입력받은 단어가 power이라면 w를 반환하면 되고, 입력받은 단어가 test라면 es를 반환하면 됩니다.
<나의 풀이계획>
- 넘어온 문자를 하나씩 배열에 넣어주기
- 배열의 길이를 알아내기
- 그 길이를 2로 나누었을때 나머지가 0 이면 짝수개, 1이면 홀수개로 구분
- 홀수개일 경우는 길이의 반이 답이됨.
- 짝수개일 경우에는 길이의 반과, 그 반의 길이에서 1을 뺸길이 두가지를 합치기
실행은 잘되었지만 코드가 조금 깔끔하지 못한것 같아 아쉽다.
class Test {
String getMiddle(String word) {
String middle = null;
char[] list = word.toCharArray();
Character[] array = new Character[word.length()];
for (int i = 0; i < list.length; i++) {
array[i] = list[i];
}
int len = word.length();
if (len % 2 != 0) { //길이가 홀수인 경우
middle = String.valueOf(array[word.length() / 2]);
} else { //길이가 짝수인 경우
String firstWord = String.valueOf((array[word.length() / 2 - 1]));
String SecondWord = String.valueOf(array[word.length() / 2]);
middle = firstWord + SecondWord;
}
return middle;
}
public static void main(String[] args) {
Test se = new Test();
System.out.println(se.getMiddle("power"));
}
}
실행 결과
w
※다른사람들의 코드
1.
String getMiddle(String word){
int length = word.length();
if(length%2==0){
return word.substring(length/2-1, length/2+1);
}else{
return word.substring(length/2, length/2+1);
}
이분이 풀이한 방식이 문제 출제자가 원했던 답안인것 같다..♩♪
[문제 및 답안 출처: 헬로월드 (http://tryhelloworld.co.kr)]
'코딩 > 알고리즘' 카테고리의 다른 글
나누어 떨어지는 숫자 배열 (0) | 2016.07.07 |
---|---|
평균 구하기 (0) | 2016.07.07 |
문자열 내림차순으로 배치하기 (0) | 2016.07.05 |
짝수와 홀수 (0) | 2016.07.05 |
최대값 최소값 구하기 (0) | 2016.07.05 |