본문 바로가기
알고리즘

프로그래머스 - 가운데 글자 가져오기 - 자바

by Won's log 2024. 3. 25.

프로그래머스 알고리즘 문제를 풀다가 해결과정을 기록으로 남겨보았습니다. 가운데 글자 가져오기

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제와 예시는 아래와 같습니다.

 

문제를 풀기 위해 설계 과정에서

문자열을 char 배열로 변환 후 저장해야겠다고 생각하였습니다.

그래서!

 


문자/문자열(String)을 배열로 변환하는 방법 2가지를 소개합니다.

 

1. 반복문 

String s = "abcde";
char[] charS = new char [s.length()];
    for (int i=0; i<s.length(); i++) {
        charS[i] = s.charAt(i);
    }

    System.out.println("charS = " + Arrays.toString(charS));
    // charS = [a, b, c, d, e]

먼저, String 값을 저장할 char[] 배열을 선언한 후, for문으로 반복해서 값을 저장하는 방법입니다.

 

2. toCharArray()

String s = "abcde";

char[] charS = s.toCharArray();
System.out.println("charS = " + Arrays.toString(charS));
// charS = [a, b, c, d, e]

String의 toCharArray()를 사용하여 바로 char[] 배열에 저장하는 방법입니다.


다시 문제로 돌아가서

문제에 대한 설계는 다음과 같다.

1. 문자열을 char 배열로 변환 + 저장 
2. 배열 갯수가 짝수이면 /2 번째 charS[i] 가져오기 <> 홀수이면 /2 2개의 charS[i] 가져오기

 

완성 코드

class Solution {
    public String solution(String s) {
        String answer = "";
        
        // 1. 문자열을 char 배열로 변환 + 저장 
        // 2. 배열 갯수가 짝수이면 /2 번째 캐릭 가져오기 <> 홀수이면 /2 2개의 캐릭 가져오기
        
        // // 1-1. 반복문
        // char[] charS = new char [s.length()];
        // for (int i=0; i<s.length(); i++) {
        //     charS[i] = s.charAt(i);
        // }
        
        // 1-2. toCharArray
        char[] charS = s.toCharArray();
        
        // 2. 짝수&홀수 함수
        if (s.length()%2==0) {
            answer = String.valueOf(charS[s.length()/2-1]) + String.valueOf(charS[s.length()/2]);
        } else {
            answer = String.valueOf(charS[s.length()/2]);
        }
        return answer;
    }
}

 

 

*위 방법 외에도 다양한 방법이 있으니 참고만 해주세요 :)

*잘못된 정보가 있다면 댓글로 남겨주시면 더 큰 도움이 될 것 같습니다 :)