알고리즘 : 프로그래머스 : JAVA : 가운데 글자 가져오기
2022. 1. 15. 17:27ㆍ알고리즘/프로그래머스
반응형
<문제>
<코드 & 설명>
class Solution {
public String solution(String s) {
String answer = "";
// 1. 짝수인 경우
if(s.length() % 2 == 0){
// 1-1. 문자열 길이/2 와 문자열 길이/2 - 1
answer+=s.charAt(s.length()/2-1);
answer+=s.charAt(s.length()/2);
// 2. 홀수인 경우
}else{
// 2-1. 문자열 길이/2
answer+=s.charAt(s.length()/2);
}
return answer;
}
}
이 문제의 핵심은 홀/짝의 문자열 길이에 따라 출력 형식을 바꿔주면 된다. 홀수일 경우, 문자열의 중앙에 위치한 문자를, 짝수일 경우 문자열 중앙의 두 문자를 반환하면 된다.
입출력 예 1번의 홀수 5 길이의 문자열은 문자로 분리했을 때 인덱스상 중앙에 오는 문자는 2번 인덱스의 문자이고 2번의 짝수 4 길이의 문자열은 인덱스상 1,2번 인덱스의 문자가 해당된다. 즉, 홀수는 문자열 길이/2의 문자를 취하고 짝수는 문자열 길이/2와 (문자열 길이/2) - 1의 문자를 취하면 된다.
<다른 방법>
class Solution {
public String solution(String s) {
String answer = "";
//짝수와 홀수인 경우로 나누어서 정리한다! 짝수면 2글자가 나오고 홀수면 1글자가 나올 것이다.
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;
}
}
문자열을 추출하는데는 3가지 방법이 있다. substring, indexOf, charAt.
substring는 substring(int a1) / substring(int a1, int a2)의 방식으로 나뉘는데 첫 번째는 a1부터 끝까지 가져오는 것,
두번쨰는 a1~a2까지 가져오는 것이다.
indexOf(int n / String str) 은 n이나 str이 있는 인덱스를 반환해주는 함수이다.
마지막으로 charAt(int n)은 n번째 위치의 값을 반환해주는 함수이다.
이 경우에서는 짝수일 경우 2개가 나와야하므로 substring를 써주는 것이 좋다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
알고리즘 : 프로그래머스 : JAVA : 행렬의 덧셈 (0) | 2022.01.16 |
---|---|
알고리즘 : 프로그래머스 : JAVA : 핸드폰 번호 가리기 (0) | 2022.01.16 |
알고리즘 : 프로그래머스 : JAVA : 짝수와 홀수 (0) | 2022.01.15 |
알고리즘 : 프로그래머스 : JAVA : 직사각형 별찍기 (0) | 2022.01.15 |
알고리즘 : 프로그래머스 : JAVA : 부족한 금액 계산하기 (0) | 2022.01.15 |