알고리즘
프로그래머스 - 가운데 글자 가져오기 - 자바
Won's log
2024. 3. 25. 15:34
프로그래머스 알고리즘 문제를 풀다가 해결과정을 기록으로 남겨보았습니다. 가운데 글자 가져오기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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;
}
}
*위 방법 외에도 다양한 방법이 있으니 참고만 해주세요 :)
*잘못된 정보가 있다면 댓글로 남겨주시면 더 큰 도움이 될 것 같습니다 :)