www.codewars.com/kata/55f8a9c06c018a0d6e000132/train/javascript
[ 문제 ]
ATM machines allow 4 or 6 digit PIN codes and PIN codes cannot contain anything but exactly 4 digits or exactly 6 digits.
If the function is passed a valid PIN string, return true, else return false.
Examples:
"1234" --> true
"12345" --> false
"a234" --> false
[ 풀이 ]
2020.11.12 (1hour)
function validatePIN (pin) {
const num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
let yes = 0;
if (pin.length === 4 || pin.length === 6) {
for (i in pin) {
for (j in num) {
if (pin[i] === num[j]) {
yes++;
}
}
}
if (yes === 4 || yes === 6) {
return true
} else {
return false
}
}
return false
}
정규표현식을 사용하면 간단하지만, 알고리즘 풀 때 최대한 정규표현식과 데이터 타입 변환을 하지 않기로 했다.
다른 사람 풀이
더보기
자바스크립트의 성질을 이용하면 더 간단한 풀이가 있다.
function validatePIN (pin) {
var n = pin.length;
if( n != 4 && n != 6)
return false;
for (var i in pin)
if (pin[i] > '9' || pin[i] < '0')
return false;
return true;
}
'■ 프로그래밍 > 알고리즘' 카테고리의 다른 글
[JS] Vowel Count (0) | 2020.11.14 |
---|---|
[JS] Stop gninnipS My sdroW! (0) | 2020.11.13 |
[JS] Who likes it? (0) | 2020.11.11 |
[JS] Mumbling (0) | 2020.11.10 |
[JS] Is this a triangle? (0) | 2020.11.07 |