티스토리 뷰
문제 설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한 조건
s의 길이는 1 이상 5이하입니다.
s의 맨앞에는 부호(+, -)가 올 수 있습니다.
s는 부호와 숫자로만 이루어져있습니다.
s는 "0"으로 시작하지 않습니다.
입출력 예
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
풀이 과정
문제를 보자마자 든 생각은 '그냥 Number 쓰면 되는 거 아닌가?'였다. 그렇지만 어떤 함정이 있을 줄 몰랐기에 일단 아는 걸 작성해서 코드 실행해 보기로 했다.
1차 코드
function solution(s) {
let string = s
let answer = string.Number();
return answer;
}
//그냥 숫자변환 메서드 Number, 문자변환 메서드 toString 쓰면 되지 않나?
변수에 문자열을 넣고 .Number를 쓰면 손쉽게 숫자로 바뀔 줄 알았는데 아니었다. 뭐가 문제지?
찾아보니 Number를 쓰는 방식의 문제였다. 자바스크립트에서 'Number()'는 숫자로 변환하는 내장 함수인데, 이는 객체의 메서드가 아니라 독립된 함수이기 때문에 'string.Number()' 같은 형태로 호출할 수 없다는 것이다.
자바스크립트에서 메서드와 함수는 다른 개념이다. 구분해서 익혀 둬야겠다.
-함수 : 전역에서 호출하거나, 특정 객체에 소속되지 않은 독립된 함수. 예를 들어, 'Number()'나 'parseInt()'와 같은 함수들을 말한다.
-메서드 : 특정 객체에 소속된 함수로, 해당 객체의 속성처럼 호출된다. 예를 들어, 'toString'은 'string' 객체의 메서드로, 객체에 소속된 함수를 호출할 때는 'object.method()' 형식을 사용한다.
정답 코드
function solution(s) {
let answer = Number(s);
return answer;
}
아주 간단하다.
'스파르타 > 알고리즘 코드카타' 카테고리의 다른 글
코딩 테스트 - 서울에서 김서방 찾기 (0) | 2024.08.21 |
---|---|
코딩 테스트 - 정수 내림차순으로 배치하기 (0) | 2024.08.16 |
코딩 테스트 - 자연수 뒤집어 배열로 만들기 (0) | 2024.08.14 |
코딩 테스트 - 나머지가 1이 되는 수 찾기 (0) | 2024.08.12 |
코딩 테스트 - 약수의 합 (0) | 2024.08.11 |