String을 파라미터로 받아, 가운데 글자를 반환하자.
짝수는 두 개를 반환하면 된다.
ex)
"abcde" ▶ "c"
"abcd" ▶ "bc"
class Solution {
public String solution(String s) {
String answer = "";
return answer;
}
}
더 짧고 멋진 코드가 인터넷에 진짜 많다.
substring써서 완전 짧게 한 줄로 조져끝내버린 빛같은 코드 보고 감탄.....
그치만, 내 풀이법을 담는 데 의의를 두기로 :)
더 열심히 해서 나도 멋있게 짜야지. 읏쨔.
접근 포인트
문자열의 길이를 구해 홀짝을 판별하고,
홀짝 여부에 따라 answer를 다르게 세팅하면 될 듯!
최종 코드
class Solution {
public String solution(String s) {
String answer = "";
int s_chk = s.length() % 2; // s_chk==1이면 홀수, 0이면 짝수
String s_Arr[] = s.split("");
if (s_chk > 0) {
answer = s_Arr[(s_Arr.length/2)];
} else {
answer = s_Arr[(s_Arr.length/2)-1] + s_Arr[s_Arr.length/2];
}
return answer;
}
}
1) int s_chk 변수를 선언하여, 홀수이면 1, 짝수이면 0값을 부여했다.
2) 문자열을 쪼개어 배열에 담았다. 이건 아래 더보기에 올린 알고리즘 풀이할 때 배웠음!
if else문을 통해서 홀수일 때, 짝수일 때 각각 다른 값을 answer에 넣어주었다.
if문은 아래와 같은 논리로 구현하였음!
입력값 | 문자열의 길이 | 리턴할 인덱스 |
1) abcde | 5 | 2 (3번째글자) |
2) abcd | 4 | 1, 2 (2, 3번째 글자) |
위 1) 의 경우에 따라, 홀수 개의 문자열이 입력되면
문자열 길이 / 2 한 값을 리턴하면 된다. (자바에서 5 / 2 = 2니까.)
위 2) 의 경우에 따라, 짝수 개의 문자열이 입력되면
문자열 길이 / 2 - 1 한 값 + 문자열 길이 / 2 한 값을 리턴하면 된다.
(4 / 2 = 2인데, 1번과 2번 인덱스를 리턴해야 하니까.)
'개발 > Java' 카테고리의 다른 글
자바 알고리즘 - 같은 숫자는 싫어 (배열의 중복 제거하여 반환하기) (0) | 2021.04.07 |
---|---|
자바 알고리즘 - 서울에서 김서방 찾기 (배열에서의 위치 찾기) (0) | 2021.03.31 |
자바 알고리즘 - 자연수를 뒤집어 배열로 만들기 (0) | 2021.03.31 |
자바 반복문(for문)을 활용한 별 찍기 예제 2가지 (0) | 2021.03.19 |
자바 반복문과 배열을 활용한 로또 조합 출력 예제 :) (0) | 2021.03.18 |