본문 바로가기
알고리즘

[프로그래머스/코딩테스트연습] 가운데 글자 가져오기

by 지 요니 2023. 4. 7.

 

문제 설명

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

 

 

제한 사항

s는 길이가 1이상, 100이하인 스트링

 

입출력 예

s return
"abcde" "c"
"qwer" "we"

나의 풀이

function solution(s) {
  let mid = s.length % 2;
  if (mid == 1) {
    //odd
    answer = s[(s.length - 1) / 2];
  } else {
    //even
    answer = s[s.length / 2 - 1] + s[s.length / 2];
  }
  return answer;
}

=> 문자열길이가 짝수인지 홀수인지를 판별  => 짝수이면 가운데 두글자 반환, 홀수면 한 글자만 반환

다른 사람 풀이

function solution(s) {
  return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}

=> substr()을 이용해 문자열을 자르는데, 홀수이면 문자열길이/2를 한 결과가 소수점이 나오므로 ceil()을 이용해 올림해준다! 그 이후 문자열이 짝수이면 2개 문자열 출력, 홀수면 1개 문자열 출력 

 

메서드

  • substr(a,b)
    • 특정 위치에서 시작하여 특정 문자 수 만큼 반환
    • a번째부터 b개 글자 가져오기
  • Math.floor() : 소수점 이하를 버림한다.
  • Math.ceil() : 소수점 이하를 올림한다.
  • Math.round() : 소수점 이하를 반올림한다.

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

댓글