SUIN

알고리즘3_가운데 글자 가져오기 본문

알고리즘/프로그래머스

알고리즘3_가운데 글자 가져오기

choi suin 2021. 11. 9. 00:02
728x90

문제 설명

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

재한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

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

 

 

문제

function solution(s) {
    var answer = '';
    return answer;
}

 

 내가 작성한 코드 

function solution(s) {

    //중간지점 찾기 (입력받은 값의 길이를 2로 나누어라)
    let center = s.length / 2
    
    // 나눈 값이 정수인지 실수인지 판별해라
    let distinction = Number.isInteger(center)

    if(distinction === true){ // 정수이다 (2개 출력 , 버림 + 올림)
      let i = s[Math.floor(center)-1]
      let j = s[Math.ceil(center)]
      let e = i+j
      return (e)
     
    }else{ // 실수이다 (1개만 출력- 올림처리)
      let j = s[Math.ceil(center)-1]
      return j
      
    }
}

 

알게된 내용

삼항연산자를 통해서 작성한 예 

 

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

console.log(solution("abcde"));

 

- 올림 반올림 내림 

 

  • 올림(Math.ceil())
    • Math.ceil() 함수 / 정수 올림 (음수 포함) / 자릿수 지정
  • 내림(Math.floor())
    • Math.floor() 함수 / 정수 내림 (음수 포함) / 자릿수 지정
  • 반올림(Math.round())
    • Math.round() 함수 / 정수 반올림 (음수 포함) / 자릿수 지정 / 소수점 숫자 정밀도 문제



출처: https://hianna.tistory.com/446 [어제 오늘 내일]