ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #AIL_23.12.07 // Programmers_가운데 글자 가져오기
    AIL( Algorithm I Learned) 2023. 12. 7. 23:45

    ## AIL_ 가운데 글자 가져오기

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

    ***제한사항
    s는 길이가 1 이상, 100이하인 스트링입니다.

    ***입출력 예
    s return
    "abcde" "c"
    "qwer" "we"

    ## solution.JavaScript

    1. 문제의 접근 방식

    주어진 문제는 문자열 `s`의 가운데 글자 또는 가운데 두 글자를 반환하는 것입니다. 문자열의 길이가 홀수이면 정확한 가운데 글자를, 짝수이면 가운데 두 글자를 반환해야 합니다. 


    2. 문제풀이

     function solution(s) {
         var answer = '';
         var length = s.length;
    
         if(length % 2 == 0){
             answer = s[length/2-1] + s[length/2]
         }else{
             answer = s[length/2-0.5]
         }
         return answer;
     }
     /*
     테스트 1
    입력값 〉	"abcde"
    기댓값 〉	"c"
    실행 결과 〉	테스트를 통과하였습니다.
    테스트 2
    입력값 〉	"qwer"
    기댓값 〉	"we"
    실행 결과 〉	테스트를 통과하였습니다.
    */

     

    1. `s.length / 2`를 통해 문자열 `s`의 중간 인덱스를 구합니다. 

     

    2. `Math.ceil`을 사용하여 올림을 수행하고, `-1`을 해서 홀수 길이의 문자열에 정확한 중간 인덱스를 얻습니다. 

     

    3. `Math.floor`를 사용하여 내림을 수행하고, `+1`을 해서 짝수 길이의 문자열에 정확한 중간 인덱스를 얻습니다. 

     

    4. `s.substring(start, end)`를 사용하여 문자열을 잘라내어 반환합니다.


    3. 다른사람의 문제풀이 및 접근방식 분석

    function solution(s) {
      return s.substring(Math.ceil(s.length / 2) - 1, Math.floor(s.length / 2) + 1);
    }
    /*
    테스트 1
    입력값 〉	"abcde"
    기댓값 〉	"c"
    실행 결과 〉	테스트를 통과하였습니다.
    테스트 2
    입력값 〉	"qwer"
    기댓값 〉	"we"
    실행 결과 〉	테스트를 통과하였습니다.
    */

     

    1. `Math.ceil(s.length/2)-1`을 사용하여 문자열의 중간 인덱스를 구하고 올림을 수행합니다. `-1`을 한 이유는 홀수 길이의 문자열에서 정확한 중간을 찾기 위해서 입니다.

     

    2. `Math.floor(s.length / 2) + 1`을 사용하 문자열의 중간 인덱스를 구하고 내림을 수행합니다. + 1을 한 이유는 짝수 길이의 문자열에서 정확한 중간을 찾기 위해서 입니다.

     

    3. `s.substring(start, end)` 문자열을 잘라내어 반환합니다. 여기서 `start`는 중간 인덱스의 왼쪽 값을, `end`는 중간 인덱스의 오른쪽 값을 나타냅니다.


     

    # Math.ceil()란?

    주어진 숫자를 올림하여 반환합니다. 즉, 소수점 이하를 무조건 올립니다. 


    # Math.ceil() 사용방법

    const roundedUp = Math.ceil(4.2); // 결과: 5

    # Math.ceil() 장단점

    장점

    주어진 숫자를 무조건 큰 정수로 올릴 수 있습니다. 

    단점

    어떤 경우에는 정환한 반올림이 필요할 수 있으며,Math.ceil() 방법이 아닌 다른 방법이 필요할 수 있습니다. 


    # Math.ceil() 어떤 상황에 써야하는지?

    주어진 값의 소수 부분을 무조건 올려야 하는 경우에 사용합니다. 예를 들어, 어떤 연산 결과를 올림하여 표시해야 할 때 사용할 수 있습니다.


    # Math.floor()란?

    주어진 숫자를 내림하여 반환합니다. 즉, 소수점 이하를 무조건 내립니다. 


    # Math.floor() 사용방법

    const roundedDown = Math.floor(4.8); // 결과: 4

    # Math.floor() 장단점

    장점

    주어진 숫자를 작은 정수로 내릴 수 있습니다. 

    단점

    어떤 경우에는 정환한 반올림이 필요할 수 있으며,Math.floor() 방법이 아닌 다른 방법이 필요할 수 있습니다. 


    # Math.floor() 어떤 상황에 써야하는지?

    주어진 값의 소수 부분을 무조건 내려야 하는 경우에 사용합니다. 예를 들어, 소수점 이하를 무조건 버릴 때 사용할 수 있습니다.


    # 사용예시 정리

    const number = 4.2;
    
    const roundedUp = Math.ceil(number); // 결과: 5
    const roundedDown = Math.floor(number); // 결과: 4
Designed by Tistory.