알고리즘

프로그래밍 문제 03. 가운데 글자 가져오기

DoosanBaek 2022. 9. 23. 16:38

이 문제는 프로그래머스에서 제공된 문제를 풀이한 문제이며, 저작권은 프로그래머스에게 있습니다.

문제번호 3

문제설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.

단어의 길이가 짝수라면 가운데 두글자를 반환하면됩니다.

제한사항

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

입출력 예

s return
"abcde" "c"
"qwer" "we"

 

Solution.java

class Solution {
    public String solution(String s) {
        String answer = "";
        int a = s.length() / 2;
        // 단어 길이의 절반인 위치를 구해 변수 a 로 선언한다.
        
        if(s.length() % 2 == 0) { 
        	/**
             인자로 주어진 string s의 길이를 구하여
             단어의 길이가 짝수면
             */
            answer += s.substring(a - 1, a + 1);
             /**
             sugstring(시작,끝)
             짝수일때 중간은 짝수를 나눴을때 몫의 값이다.
             하지만 인덱스 값은 0부터 시작하므로
             몫값에서 -1을 한것이 시작이 위치다.
             */
        } else {
        // 홀수면
            answer += s.substring(a, a+1);
            /**
              홀수일때 중간은 홀수를 나눴을때
              몫의 값이 인덱스값의 중간이므로
              그대로 시작위치가 된다.*/
        }
        return answer;
    }
}

 

Solution03 코드 intellij에서 실행해서 출력값 확인해보기

public class Solution03 {
    String solution3(String s) {
        String answer = "";
        int a = s.length() / 2;
        // 단어 길이의 절반인 위치를 구해 변수 a 로 선언한다.
        if (s.length() % 2 == 0) {
            /**
             인자로 주어진 string의 길이를 구하여
             단어의 길이가 짝수면
             */
            answer += s.substring(a - 1, a + 1);
            /**
             sugstring(시작,끝)
             짝수일때 중간은 짝수를 나눴을때 몫의 값이다.
             하지만 인덱스 값은 0부터 시작하므로
             몫값에서 -1을 한것이 시작이 위치다.
             */
        } else {
            // 홀수면
            answer += s.substring(a, a + 1);
            /**
              홀수일때 중간은 홀수를 나눴을때 
              몫의 값이 인덱스값의 중간이므로
              그대로 시작위치가 된다.*/
        }
        return answer;
    }
    public static void main(String[] args) {
        // 테스트로 출력해보기 위한 코드
        Solution03 se = new Solution03();
        System.out.println(se.solution3("doosan"));
    }
    // doosan의 가운데 글자인 os가 출력된다.
}

substring을 사용하여 문자열의 가운데 글자를 반환한다.

.stubstring은 문자열로 반환

.substring(시작위치,종료위치);

예시) String str = "abcdefg"

str.substring(2) // cdefg

str.substring(3,5) // de

str.substring(4,6) // ef