개발 공부/알고리즘

[프로그래머스 알고리즘] 가운데 글자 가져오기 JavaScript / Math.ceil

U_D 2022. 3. 13. 20:53

1. 문제 설명

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

 

 

2. 제한 조건

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

 

 

3. 예시

  • 입력/출력
S return
"abcde "c"
"qwer" "We"

 

4. 풀이

  • if / else 활용
  • 글자의 숫자가 짝수라면 2개의 중간 글자가 나오게 됨으로 num1 / num2 값을 줘서 진행했다.
  • parseInt는 else에서 나눈 값이 2.5로 나오면 2인 정수로 바꿔준다.
function solution(s) {
    var answer = '';
    let num1 = 0;
    let num2 = 0;
    
    if (s.length % 2 == 0) {
        num1 = s.length / 2 - 1
        num2 = s.length / 2
        return answer = s[num1] + s[num2]
    } else {
        num1 = parseInt(s.length / 2)
        return answer = s[num1]
    }
}

 

  • else의 홀수라면 홀수의 길이를 짝수로 만들어주는 방안
function solution(s) {
    var answer = '';
    let num1 = 0;
    let num2 = 0;
    
    if (s.length % 2 == 0) {
        num1 = s.length / 2 - 1
        num2 = s.length / 2
        return answer = s[num1] + s[num2]
    } else {
        num1 = (s.length - 1) / 2
        return answer = s[num1]
    }
}

 

  • 변수 없이 바로 출력
function solution(s) {
  var answer = '';
  if (s.length % 2 == 1) {
    answer = s[(s.length - 1) / 2];
  } else {
    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);
}​

 

Math.ceil

전달받은 값과 같거나 큰수 중 가장 작은 정수를 리턴

즉, 입력받은 숫자를 올림한 정수를 리턴하는 함수.

/ 1.올림
const ceil_1 = Math.ceil(1); // 1
const ceil_2 = Math.ceil(1.222); // 2
const ceil_3 = Math.ceil(1.5); // 2
const ceil_4 = Math.ceil(1.777); // 2

// 2. null 또는 0인 경우
const ceil_5 = Math.ceil(null); // 0
const ceil_6 = Math.ceil(0); // 0

// 3. 음수인 경우
const ceil_7 = Math.ceil(-1); // -1
const ceil_8 = Math.ceil(-1.111); // -1
const ceil_9 = Math.ceil(-1.5); // -1
const ceil_10 = Math.ceil(-1.777); // -1

*내림(Math.floor())

*반올림(Math.round())

*소수점 반올림 (toFixed(), toPrecision())