프로그래머스 알고리즘 문제를 풀다가 해결과정을 기록으로 남겨보았습니다. 가운데 글자 가져오기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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;
}
}
*위 방법 외에도 다양한 방법이 있으니 참고만 해주세요 :)
*잘못된 정보가 있다면 댓글로 남겨주시면 더 큰 도움이 될 것 같습니다 :)
'알고리즘' 카테고리의 다른 글
자바 - 프로그래머스 - 삼총사 (0) | 2024.04.02 |
---|---|
자바 - 프로그래머스 - 이상한 문자 만들기 (0) | 2024.04.02 |
프로그래머스 - 문자열의 앞의 n글자 - 자바 (0) | 2023.12.04 |
백준 11047번 동전 0 - 그리디 - 자바 (0) | 2023.11.12 |
백준 1120번 문자열 - 자바 (2) | 2023.10.30 |