관리 메뉴

공부기록용

프로그래머스(LV 1. 문자열을 정수로 바꾸기) 본문

✍️문제풀기✍️/JS_Programmers school

프로그래머스(LV 1. 문자열을 정수로 바꾸기)

과부하가즈아 2023. 6. 16. 12:46

LV 1. 문자열을 정수로 바꾸기

https://school.programmers.co.kr/learn/courses/30/lessons/12925

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

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

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

많이 사용하는건 Number() 함수, parseInt(), parseFloat() 등등이 있는데 문제는 -음수가 있다는 점 이었다.

그래서 찾고 사용한 방법은

🔴배운거
> 비트 부정 연산자(~)를 이용해 문자열을 숫자로 변환하는 방법이었는데,
> 하나의 비트 부정 연산자(~)를 숫자에 사용하면 -(x + 1) 연산을 실행하는것이고,
console.log(~19);
// -20​

> 두 개의 비트 부정 연산자(~~)를 사용하면 문자열을 숫자로 변환한다는 것이었다.
const quantity = "19";
console.log(~~quantity);
// 19

> 단 실수에서는 적용되지 않는다고한다(결과값으로 반영하기 때문)
const quantity = "19.99";
console.log(~~quantity);
// 19​

이게 맞는 방법인지는 잘 모르겠어서 다시 봐야할 것 같다.

<해결1>

function solution(s) {
    var answer = 0;

    answer = ~~s

    return answer;
}
console.log(solution("-1234"))

// -1234

이었는데 뭔가 찜찜하긴 해서 이 부분을 정리해봐야 할 것 같다.
참고 - https://www.freecodecamp.org/korean/news/how-to-convert-a-string-to-a-number-in-javascript/

<해결2>
> Number( )사용

function solution(s) {
    var answer = 0;

    answer = Number(s)

    return answer;
}
console.log(solution("-1234"))

 

Comments