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;
}
검색을 하려면
나름대로의 생각이 있어야 하는데
일단 저렇게 그림과 텍스트로 표현해놓으니 좀 더 편한 것 같다.