-
프로그래머스 - 가운데 글자 가져오기알고리즘 2022. 6. 26.반응형
내 풀이
public class P_31 { public String solution(String s) { String answer = ""; String[] list = s.split(""); if(list.length % 2 == 1) { answer = list[list.length/2]; } else { answer = list[list.length/2-1] + list[list.length/2]; } return answer; } public static void main(String[] args) { // 가운데 글자 가져오기 P_31 p = new P_31(); String s = "qwer"; System.out.println(p.solution(s)); } }
단순하게 문제에서 요구하는 그대로 내려가면서 풀이 함.
개선점 : 굳이 배열로 문자열을 나눌 필요가 없음.
문자열의 length() 메소드를 사용하면 문자열의 글자 갯수를 알 수 있음.
다른 사람 풀이
String getMiddle(String word){ return word.substring((word.length()-1) / 2, word.length()/2 + 1); }
한 줄로 해결한 모습
substring() 메소드를 활용함.
문자열의 인덱스 앞 뒤를 구하는 방법의 차이.
문자열의 전체 글자수 인덱스에서 인덱스가 0부터 시작하는걸 고려해서 -1을 빼주고 실제 계산되는 전체 인덱스를 2로 나누어 주면
전체 글자수가 홀수일 경우 가운데 글자가 나오고 짝수일 경우 중간의 첫번째 인덱스를 구할 수 있다.
substring의 2번째 인자는 인자로 받은 인덱스 값의 앞쪽의 인덱스 까지만 적용 받는걸 이용해서 문자열의 중간 값의 +1을 해준다.
반응형'알고리즘' 카테고리의 다른 글
프로그래머스 - 부족한 금액 계산하기 (0) 2022.06.29 프로그래머스 - 다트 게임 [2018 KAKAO BLIND RECRUITMENT] (0) 2022.06.28 프로그래머스 - 같은 숫자는 싫어 (0) 2022.06.14 프로그래머스 - 나누어 떨어지는 숫자 배열 (0) 2022.06.13 프로그래머스 - 두 정수 사이의 합 (0) 2022.06.11