TIL

23.12.07 TIL

영우는여전히 2023. 12. 7. 14:24

알고리즘(프로그래머스)

문자열을 정수로 바꾸기

문자열을 정수로 바꾸기


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

제한 조건
s의 길이는 1 이상 5이하입니다.
s의 맨앞에는 부호(+, -)가 올 수 있습니다.
s는 부호와 숫자로만 이루어져있습니다.
s는 "0"으로 시작하지 않습니다.
입출력 예
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

 

function solution(s) {
    var answer = 0;
    const num = Number(s);
    //const num = parseInt(s); 소수를 가진 실수는 정수로 변환.
    answer = num
    return answer;
}

 

이것도 통과다.

 

그냥 이러면 되지 않을까? 로 문자를 숫자로 변환하는 방법을 검색해서 해결했다.

 

다른사람의 풀이

function strToInt(str){
  return str/1
  }


// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log(strToInt("-1234"));

 

댓글을 보고서 알았다.

 

사칙연산 되면서 문자가 자동으로 파싱된다는 것이었다.. ㄷㄷ

 


정수 제곱근 판별




// function solution(n) {
//     var answer = 0;
//     var x = x;
//     if (n === x**2) {
//        answer === (x+1)**2 + answer
//     } else {
//         -1 === answer
//     };

//     return answer;

function solution(n) {
    var answer = 0;
    const x = Math.sqrt(n);//n의 제곱근을 x라고 선언
    if (Number.isInteger(x)) {
        // 만약에 x가 정수일 때...
       answer = Math.pow(x + 1, 2);
        //Math.pow(x + 1, 2) ->  x+1의 제곱이라는 뜻임 
    } else {
        answer = -1;
    };

    return answer;
}

 

 

검색을 하려면

 

나름대로의 생각이 있어야 하는데

 

일단 저렇게 그림과 텍스트로 표현해놓으니 좀 더 편한 것 같다.