[Programmers #12903] - 가운데 글자 가져오기

G_NooN·2024년 1월 10일
0

Algorithms

목록 보기
17/33
post-thumbnail

(Lv. 1) 가운데 글자 가져오기 (문제 링크)

문제 설명

단어 s의 가운데 글자를 return하는 solution 함수를 완성하라.

단어의 길이가 짝수인 경우, 가운데 두 글자를 return한다.

제한 조건

  1. s는 길이가 1 이상, 100 이하인 String이다

입출력 예시


접근 방식

  1. 입력 값은 <문자열 s>, 출력 값은 <가운데 문자열>이다.
  2. 문자열의 가운데로 접근하기 위해 문자열의 길이에서 반을 나눈다.
  3. 나누었을 때 딱 떨어지면 문자열 길이가 짝수고, 아니면 홀수다.
  4. 가운데 부분을 String 메서드를 사용하여 출력한다.

해결 방법

  1. Math.floor()를 사용하여 문자열의 절반을 나눈다.
  2. 문자열의 길이를 2로 나눠서 나머지가 0인지 판단한다.
  3. String.slice()를 사용하여 문자를 더한다.

코드

function solution(s) {
  let answer = "";
  let centerIdx = Math.floor(s.length / 2);

  answer =
    s.length % 2 === 0 ? s.slice(centerIdx - 1, centerIdx + 1) : s.slice(centerIdx, centerIdx + 1);

  return answer;
}

시행착오

더 개선할 수 있는 방법

  • + 연산자 사용
    • 출력값의 길이는 결과적으로 1 또는 2다.
    • + 연산자를 사용하면 문자열을 더할 수 있다.
    • 따라서, slice(), substring() 같은 메서드 대신 +를 사용하여 코드를 더욱 간결하게 표현할 수 있다.
	// AS-IS
	answer = s.length % 2 === 0 ? s.slice(centerIdx - 1, centerIdx + 1) : s.slice(centerIdx, centerIdx + 1);

	// TO-BE
	answer = s.length % 2 === 0 ? s[centerIdx - 1] + s[centerIdx] : s[centerIdx];

주요 개념

  • Math.floor()
  • String.slice(), String.substring()
  • + 연산자
profile
쥐눈(Jin Hoon)

0개의 댓글