가운데 글자 가져오기

Jaemin Jung·2021년 6월 17일
0

Algorithm

목록 보기
4/8
post-thumbnail

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

내가 작성한 코드

function solution(s) {
  
 if (s.length%2 === 0){
   return s[s.length/2-1] + s[s.length/2]
 }else {
   return s[Math.round(s.length/2-1)]
 }
}

예전에 섹션1에서 코플릿 문제와 비슷한 수준이라 금방 풀어냈다.
전달받은 s의 길이가 홀수라면 가운데 글자를, 짝수라면 가운데 두글자를 반환해야하니,
가운데 위치를 지정하는 방법을 찾는게 중요한 문제인것같다.

RUN JS에서 실제로 문자열이 짝수일 경우와 홀수일 경우를 확인하며 문제를 해결하였다.

우선 문자열 길이의 절반이 정 가운데 위치일것이다.
하지만 길이가 짝수일 경우 특성상 2로 나누어 떨어져 정 가운데가 없다.
가운데 두글자를 반환하기 위해서 인덱스로 접근하여 가져온 두 문자열을 합쳤다.

'정재민정재민' // 짝수의 문자열을 둘로 나눌경우 가운데가 없다.
'정재민''정재민'

둘로나눈 문자에서 문제가 원하는 문자는 민정일것이고,
정재민정재민에서 의 위치는 3번째에 위치하였고 인덱스는 2이다.
그래서 을 가져오기 위해 문자열 길이의 절반 -1 인덱스로 접근,
을 가져오기 위해 문자열 길이의 절반 인덱스로 접근
두 문자를 합성하였다.

길이가 홀수일경우 특성상 2로 나누어 떨어지지 않는다.

'최강정재민' // 가운데는 3번째 문자 길이의 절반은 2.5

만약 길이가 9라면 절반으로 나누었을때 4.5, 길이가 11이라면 5.5로 된다.
홀수 길이의 문자열의 정 가운데 위치는 길이의 절반의 반올림으로 접근하였다.
Math.round 메소드에 문자열 길이의 절반 -1을 인자로 넣었다.

채점 결과

문제링크

https://programmers.co.kr/learn/courses/30/lessons/12903

profile
내가 보려고 쓰는 블로그

0개의 댓글