6월 시작두 어김없이 til로 !!
당장 해결해야할 플젝은 마무리해서 오늘은 프로그래머스 풀면서 시간보냄
맨날 레벨 1 정답률 80퍼 이상만 풀다가 오늘 79퍼 풀었는데 ,,, 아니 1퍼 내렸다고 이렇게 어렵기 있음? ㅋㅋ 쿠ㅜ 결국 답지 구글링해서 풀었다 ...
https://school.programmers.co.kr/learn/courses/30/lessons/12918
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제 풀었구여
문자열의 길이가 4 또는 6안자 확인을 해주고 문자열의 구성이 숫자로만 구성되어있는지 true, false로 반환해줘야 하는 함수를 만들어야 한다.
1. 문자열의 길이 확인은 if 문 안에 array.length()로 6 또는 4 로 확인을 해주고
2. 문자열이 숫자로만 구성되어있는지 .. 이거는 관련 메소드를 구글링 해봤는데 isNaN()매소드를 사용하여 확인해주면 될 것 같았다
근데 mdn 문서의 isNaN 메소드를 확인해보니까, 예외가 많이 있는 함수가 있는 것 같은..
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/isNaN
isNaN() - JavaScript | MDN
isNaN() 함수는 어떤 값이 NaN인지 판별합니다. isNaN 함수는 몇몇 혼란스러운 케이스을 가지고 있으므로, ECMAScript 2015에서 추가한 Number.isNaN()으로 바꾸는 편이 좋을 수도 있습니다.
developer.mozilla.org
NaN이 not a number 이란 뜻으로 받은 매개변수의 자료형이 숫자가 아니면 true, 숫자면 false를 리턴해주는 함수네여
function solution(s) {
var answer;
// 문자열 길이를 or 연산으로 확인하고 동시에 and 연산으로 isNaN 함수에 앞에 not연산을 붙혀 문자열만 조건문을 통과하게 했다
if((s.length === 4 || s.length === 6) && (!isNaN(s))){
answer = true;
} else {
answer = false;
}
return answer
}
아니 코드 나름 깔끔하게 잘 썻네 .. 했는데 오류남 ㅠ ㅋㅋㅋㅋ
구글링을 해보니., 문자 e가 들어온다면 isNaN 함수가 e를 지수로 인식을 한대요.. 그래서 e가 들어와서 문자인 경우에도 숫자로 인식해버린다는데 그래서 그런듯 ㅠ 어이없어
글서 문자 하나하나를 array.split 메소드로 떼어주고 array.every() 메소드로 띄어낸 문자가 문자인지 아닌지 확인해야했음
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/every
Array.prototype.every() - JavaScript | MDN
every() 메서드는 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트합니다. Boolean 값을 반환합니다.
developer.mozilla.org
첨보는 메소드라 mdn 첨부하고
//s,split("")로 문자열을 문자 하나씩 띄어내고
//띄어낸 문자들을 every 메소드를 사용해서 모든 요소가 콜백함수로 넣은 판별함수를 통과하는지 테스트
s.split("").every((word) => {
return !isNaN(word)
}
요렇게 적었습니다
그래서 조합해보면
function solution(s) {
//문자열의 길이부터 확인하고
//안에 숫자여부 확인하기
if(s.length == 4 || s.length == 6) {
return s.split("").every((word) => {
return !isNaN(word)
})
} else return false
}
이렇게 해결완
'TIL' 카테고리의 다른 글
| 6월 5일 TIL - 배열의 모든 요소를 문자열로 연결해주는 join() (0) | 2023.06.05 |
|---|---|
| 6월 2일 TIL - floor(), 이중배열 (0) | 2023.06.02 |
| 5월 31일 TIL (2) - input창 버튼 누를때마다 reload 현상 막기 (0) | 2023.05.31 |
| 5월 31일 TIL - 최소공배수 = 두 수의 곱 / 최대공약수 (0) | 2023.05.31 |
| 5월 30일 TIL - (개인프로젝트) api로 받아온 정보를 html에 넣기 (0) | 2023.05.30 |