본문 바로가기
문제풀이/프로그래머스

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

by chan10 2021. 1. 27.

 

문제 설명

 

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

 

재한사항

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

 

입출력 예

s

return

“abcde”

“c”

“qwer"

“we”

 


- 풀이 과정 -

1.     문자열 매개변수 s 길이에서 2로 나누어 중간 위치 값을 저장 (length 4 -> index = 2)

2.     문자열 매개변수 s 길이의 짝수 여부 확인을 위해 조건문(if) 사용

3.     2로 나눈 나머지 값이 0면 짝수이기에 1번 과정에서 구했던 index(중간 위치)에 해당하는 문자의 위치와 index-1위치의 문자를 문자열로 더해서 리턴

4.     2로 나눈 나머지 값이 0이 아니면 홀수 이기에 1번 과정에서 구했던 index(중간 위치)에 해당하는 문자만 반환

 


- 풀이 코드1 -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
    public String solution(String s) {
        String answer = "";
        int index = s.length()/2;
 
        if(s.length()%2==0) {
            answer+=s.charAt(index-1);
            answer+=s.charAt(index);
        } else {
            answer+=s.charAt(index);
        }
        return answer;
    }
    
    public static void main(String[] args) {
        Solution sol = new Solution();
        String str = "abcde";
        
        System.out.println(sol.solution(str));        
    }
}
 

 

- 풀이 코드2 -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
    public String solution(String s) {
        String answer = "";
        
        if(s.length()%2==0) {
            answer+=s.substring(s.length()/2-1, s.length()/2+1);
        } else {
            answer+=s.substring(s.length()/2, s.length()/2+1);
        }
        return answer;
    }
    
    public static void main(String[] args) {
        Solution sol = new Solution();
        String str = "qwer";
        
        System.out.println(sol.solution(str));        
    }
}
 
 

 

 

- 다른 분 풀이 -

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
    public String solution(String s) {
 
        return s.substring((s.length()-1)/2,s.length()/2+1);
    }
    
    public static void main(String[] args) {
        Solution sol = new Solution();
        String str = "abcde";
        
        System.out.println(sol.solution(str));        
    }
}