1일차 → 가운데 글자 가져오기(Math.round(), Math.floor())
본문 바로가기
항해 중/2주차 알고리즘(프로그래머스)

1일차 → 가운데 글자 가져오기(Math.round(), Math.floor())

by 은돌1113 2021. 11. 8.

배정 받은 문제를 생각 보다 빨리 풀어서 다른 분들의 문제로 풀어보기로 했습니다.

 

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.

단어의 길이가 짝수라면 가운데 두 글자를 반환하면 됩니다.

 

제한사항

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

 

내가 푼 문제 풀이

 

Math.round() 함수는 소수점 이하를 반올림 한다.

function solution(s) {

    let answer = '';
    
    let length = Math.round(s.length / 2)
    // 가운데 숫자를 구하기 위해서
    // s.length를 2로 나눠서 가운데 숫자를 구한다.
    // 소숫점으로 나올 경우를 대비해
    // Math.round() 함수를 사용하여 반올림 해준다.
    
    if(length >= 1 && length <= 100){
        if(s.length%2 == 0){
        // s의 길이가 짝수라면
          answer = s[length-1]+s[length]
          // 두 글자를 출력 해야 하기 때문에
          // s[length-1]+s[length]를 해준다.
        }else{ // s.length%2 == 1
        // s의 길이가 홀수라면
          answer = s[length-1]
          // 한 글자만 출력하면 되기 때문에
          // s[length-1]을 해준다.

          // -1을 쓰는 이유는 index를 셀 때는 0부터 시작하기 때문이다.
        }
    }else{
        return
    }
    
    return answer;
}

 

Math.floor() 함수는 소수점 이하를 버린다.

function solution(s) {

    let answer = '';
    
    let length = Math.floor(s.length / 2)
    // 가운데 숫자를 구하기 위해서
    // s.length를 2로 나눠서 가운데 숫자를 구한다.
    // 소숫점으로 나올 경우를 대비해
    // Math.floor() 함수를 사용하여 소수점 이하를 버린다.
    
    if(length >= 1 && length <= 100){
        if(s.length%2 == 0){
        // s의 길이가 짝수라면
          answer = s[length-1]+s[length]
          // 두 글자를 출력 해야 하기 때문에
          // s[length-1]+s[length]를 해준다.
        }else{ // s.length%2 == 1
        // s의 길이가 홀수라면
          answer = s[length]
          // 한 글자만 출력하면 되기 때문에
          // s[length]을 해준다.

          // -1을 쓰는 이유는 index를 셀 때는 0부터 시작하기 때문이다.
        }
    }else{
        return
    }
    
    return answer;
}

 

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

 

코딩테스트 연습 - 가운데 글자 가져오기

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret

programmers.co.kr

 

댓글