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
};
parseInt() 함수 : 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.
* 문자열을 parseInt로 파싱했을 때 반환된 값이 정수가 아니면 0값을, 정수면 반환 값을 할당한다.
* 값이 정수 범위 [-2**31, 2**31 - 1]를 벗어나면 정수가 범위에 있도록 고정한다.
'LeetCode > 코딩 테스트 스터디 2주차' 카테고리의 다른 글
[LeetCode] 66. Plus One 풀이 (JS) (0) | 2022.07.17 |
---|---|
[LeetCode] 58. Length of Last Word 풀이 (JS) (0) | 2022.07.17 |
[LeetCode] 7. Reverse Integer 풀이 (JS) (0) | 2022.07.17 |
[LeetCode] 35. Search Insert Position 풀이 (JS) (0) | 2022.07.17 |
[LeetCode] 28. Implement strStr() 풀이 (JS) (0) | 2022.07.17 |