개발자의 logs
문자열 다루기 기본 - 자바스크립트 본문
https://programmers.co.kr/learn/courses/30/lessons/12918
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
"a234" | false |
"1234" | true |
해설
이 문제는 해석이 어려웠다. 처음엔 4 혹은 6인 부분과 , 숫자인 부분을 따로 나눠서 생각했었는데 알고보니 교집합형 문제였다. 그 안에 속하는 또 다른 조건이라는 뜻이다.
우선 s.length를 통해서 4 또는 6인지 체크해주었고, 조건문을 또 추가하고 isNaN()함수를 통해 숫자로만 이루어져 있는지 확인했다.
참고로 isNaN은 숫자면 false를 반환한다. 숫자라면 안에 e가 포함되있는지 추가적으로 다시 확인한다.
왜냐면 지수함수 표시형으로 e가 들어가 있을 수 있기 때문이다 ( 테스트 케이스 11에서 걸린다)
결국 isNaN으로 온전히 거를수는 없기 때문!
제출했을때 undifined가 많이 떴는데, 각 조건문 끝에 아닌경우는 return false를 추가하니 해결되었다.
결국 3중 조건문이 되었는데 차차 학습하면서 코드를 다듬어가는 연습을 해야겠다
코드
function solution(s){
if (s.length == 4 || s.length == 6){
if (isNaN(s)==false){
if (s.includes('e')){
return false}else{
return true
}
}else return false
}else return false
}
'공코딩 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 이상한 문자 만들기 자바스크립트 javascript (0) | 2022.05.16 |
---|---|
완주하지 못한 선수 - 자바스크립트 (0) | 2022.05.14 |
문자열 내 p와 y의 개수 - 자바스크립트 (0) | 2022.05.14 |
나누어 떨어지는 숫자 배열 - 자바스크립트 (0) | 2022.05.14 |
부족한 금액 계산하기 - 자바스크립트 (0) | 2022.05.14 |
Comments