지영이의 개발 블로그
✔[프로그래머스] 문자열다루기 본문
<문제 풀기전 기본으로 알아야할 할것 >
- '==' 서로 다른 유형의 두 변수의 값만 비교 (값 -> true) | 자료형은 판단하지 않는다
- '===' 더 엄격하게 비교 (값 & 자료형 -> true) | 권장사항
isNan()
매개 변수가 숫자인지 검사하는 함수 ( nan 은 not number 이다)
isNaN( value )
- value : 검사할 값을 입력합니다.
- 매개변수가 숫자가 아니면 true, 숫자이면 false를 반환합니다.
Number
ex) '0.5' === 0.5
해당 문자열의 숫자를 있는 그대로 출력한다.
문자열 내에 숫자 말고도 문자가 섞여있으면 무조건 NaN로 나온다.
parseInt
ex) '0.5' === 0
소수를 출력해도 해당 소수점은 다 자르고 정수만 나온다.
문자열 내에 숫자 말고도 문자가 섞여있어도 숫자만 그대로 출력해주는 기능이 있다.
parseInt( string, n )
- string을 n진법일 때의 값으로 바꿉니다. n은 옵션으로 2부터 36까지 입력할 수 있습니다. 입력하지 않으면 10으로 처리합니다.
- string의 처리는 parseFloat()와 거의 같습니다.
- 소수 부분은 버립니다.
- 0x로 시작하면 16진법으로 처리합니다.
예제
- parseInt( '100', 2 ) : 100은 2진법으로 4입니다.
- parseInt( '0x100' ) : 100은 16진법으로 256입니다.
<My Solution>
isNan을 사용하여 s가 number이 아니면 false 리턴 하고 s가 number이면 true 를 return 하게 코드를 짜보았는데 오류가 발생했다 ㅠㅠ
이유는 자바스크립트에서는 숫자에 e가 붙으면 지수로 인식하여 문자인 경우도 그냥 숫자로 인식해버린다는 것이었다.
ex)1e22를 Number()를 이용해서 숫자로 형 변환하면 1의 22승, 즉 1이 됨...
number를 사용해줘도 똑같음 ㅠㅠ
(개선방법)
parseInt 함수를 사용해준다
만약 s의 길이가 4 또는 6 이면서 s가 result 값과 같을 경우 true를 리턴 하고
문자열로 된 s의 값을 정수로 변환시켜주고 이때 들어있는 문자열이 숫자로만 구성되어있다면 정수로 변환되겠지만 문자가 섞여있다면 NaN으로 출력된다.
조건에 부합하면 true조건에 하나라도 부합되지 않을 경우 false를 리턴
'코딩 > 코딩테스트' 카테고리의 다른 글
✔[프로그래머스]핸드폰 번호 가리기 (0) | 2022.05.29 |
---|---|
✔[프로그래머스]행렬의 덧셈 (2차원배열+2중for) (0) | 2022.05.28 |
✔[프로그래머스]비밀지도 (0) | 2022.05.27 |
✔[프로그래머스] 직사각형 별찍기 (중첩for) (0) | 2022.05.17 |
✔[프로그래머스]하샤드 수 (0) | 2022.05.11 |
Comments