본문 바로가기
LeetCode/코딩 테스트 스터디 2주차

[LeetCode] 8. String to Integer (atoi) 풀이 (JS)

by inwoo1324 2022. 7. 17.

0. 문제

https://leetcode.com/problems/string-to-integer-atoi/

 

String to Integer (atoi) - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

1. 선행 공백을 무시하고 읽습니다.
2. 다음 문자(아직 문자열 끝에 있지 않은 경우)가 '-' 또는 '+'인지 확인합니다. 이 문자 중 하나일 경우 이를 확인합니다. 최종 결과가 각각 음수인지 양수인지를 결정합니다. 부호가 둘 다 없으면 결과가 양수라고 가정합니다.
3. 숫자가 아닌 문자(글자) 또는 입력의 끝에 도달할 때까지 다음 숫자를 읽습니다. 나머지 문자열은 무시됩니다.
4. 숫자를 정수로 변환합니다(예: "123" -> 123, "0032" -> 32). 읽은 숫자가 없으면 정수는 0으로 변환합니다. 필요에 따라(2단계부터) 기호를 변경합니다.
5. 정수가 32비트 부호 있는 정수 범위 [-2**31, 2**31 - 1]를 벗어나면 정수가 범위에 있도록 고정합니다. 특히 -2*31보다 작은 정수는 -2*31로, 2*31 -1보다 큰 정수는 2**31 -1로 고정해야 합니다.
6. 최종 결과로 정수를 반환합니다.

#1
Input: s = "42"
Output: 42
#2
Input: s = "   -42"
Output: -42
#3
Input: s = "4193 with words"
Output: 4193

 

1.언어

자바스크립트(JavaScript)

 

2. 문제 풀이

var myAtoi = function(s) {
    let res = isNaN(parseInt(s)) ? 0 : parseInt(s)
    
    if (res > (2 ** 31)-1) res = (2 ** 31) -1
    else if (res < -(2 ** 31)) res = -(2 ** 31)
    return res
};
Runtime: 90 ms, faster than 82.49% of JavaScript online submissions for String to Integer (atoi).
Memory Usage: 43.2 MB, less than 98.67% of JavaScript online submissions for String to Integer (atoi).
 

parseInt() 함수 :  문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.

 

* 문자열을 parseInt로 파싱했을 때 반환된 값이 정수가 아니면 0값을, 정수면 반환 값을 할당한다.

* 값이 정수 범위 [-2**31, 2**31 - 1]를 벗어나면 정수가 범위에 있도록 고정한다.