ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #AIL_23.11.13 // Programmers_문자열 정수로 바꾸기
    AIL( Algorithm I Learned) 2023. 11. 13. 22:13

    ## AIL_문자열 정수로 바꾸기 

    ***문제 설명
    문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

    ***제한 조건
    s의 길이는 1 이상 5이하입니다.s의 맨앞에는 부호(+, -)가 올 수 있습니다.s는 부호와 숫자로만 이루어져있습니다.s는 "0"으로 시작하지 않습니다.

    ***입출력 예
    예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
    str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

    ## solution.JavaScript

    1. 문제의 접근 방식

    주어진 문제는 문자열을 정수로 변환하는 함수를 작성하는 것입니다. 이 문제의 핵심은 `Number()` 함수를 사용하여 문자열 `s`를 숫자로 변환하는 것입니다. JavaScript에서는 문자열이 숫자로 시작하면 알아서 숫자로 변환해주기 때문에 부호가 있는 경우도 잘 처리됩니다. 예를 들어, `"1234"` 는 `1234`로 변환되고, `"-1234"`는 `-1234`로 변환됩니다. 


    2. 문제풀이

    function solution(s) {
        var answer = 0;
        answer = Number(s)
        return answer;
    }
    /*
    테스트 1
    입력값 〉	"1234"
    기댓값 〉	1234
    실행 결과 〉	테스트를 통과하였습니다.
    테스트 2
    입력값 〉	"-1234"
    기댓값 〉	-1234
    실행 결과 〉	테스트를 통과하였습니다.
    */
    
    // Number()대신 parseInt()도 사용가능

     

    1. `Number()` 함수를 사용하여 문자열 `s`를 숫자로 변환합니다. 

    2. 변환된 숫자를 `answer` 변수에 할당합니다. 

    3. 최종적으로 변환된 숫자를 반환합니다. 


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

    function solution(s) {
        var answer = 0;
        return s/1; 
      
    }
    
    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    console.log(strToInt("-1234"));
    /*
    테스트 1
    입력값 〉	"1234"
    기댓값 〉	1234
    실행 결과 〉	테스트를 통과하였습니다.
    테스트 2
    입력값 〉	"-1234"
    기댓값 〉	-1234
    실행 결과 〉	테스트를 통과하였습니다.
    */

     

    ???????????????????????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    동적 언어에 핵심을 찌르는 색다른 풀이입니다. 

     

    1. `s/1`: 여기 부분이 `s`를 숫자로 변환하는 핵심 부분입니다. 

    2. JavaScript에서는 숫자와 문자열 간의 나눗셈 연산을 수행하면 자동으로 문자열이 숫자로 변환됩니다. 따라서 `s/1`은 `s`를 숫자로 변환한 결과를 반환하게 됩니다. 

     

    위의 풀이는 간결하지만, 몇 가지 주의할 점이 있습니다. 부호(+,-)가 있는 문자열에 대해서도 잘 동작하지만, 부호가 없는 문자열의 경우에도 숫자로 변환됩니다. 또한 입력이 숫자로 시작하지 않거나 숫자 이외의 문자를 포함하고 있는 경우에는 NaN(Not a Number)이 반환됩니다. 따라서 이 풀이는 순수한 숫자로 이루어진 문자열에 대해서만 적용하는 것이 좋습니다.  


    # 자바스크립트는 여전히 신기한 동적 언어이다.

    그리고 세상은 넓고 천재는 많다........

Designed by Tistory.