Daily Codewars #30
Question
codewars link
Write an algorithm that will identify valid IPv4 addresses in dot-decimal format. Input to the function is guaranteed to be a single string.
Examples of valid inputs: 1.2.3.4 123.45.67.89
Examples of invalid inputs: 1.2.3 1.2.3.4.5 123.456.78.90 123.045.067.089
ip주소 validation을 하는 문제다. 참고로 0<=숫자 이게 왜 4kyu이지? 그리고 이제 honor가 113정도 되니 4큐 풀어봤자 2밖에 안오르네. 흑흑
my Solution
function isValidIP(str) { var arr = str.split('.'); if(arr.length == 4) { return validLen = arr.filter(function(x) { return x !== (+x).toString() ? false : x>=0 && x<=255 ? true : false; }).length == arr.length; } return false; }
split으로 나눠서 삼항연산자로 비교했다.
지금 보니 arr.length랑 filter로 나온 length를 비교할 필요 없이 그냥 4면 되는건데 바보바보 인증.
ryanzyy’s Solution
function isValidIP(str) { return /^(([1-9]?d|1dd|2[0-4]d|25[0-5])(.(?!$)|$)){4}$/.test(str); }
으익 나도 정규식으로 풀걸. 그리 복잡하지 않았을텐데!
yaphi1’s Solution
function isValidIP(str) { return str.split('.').filter(function(v){return v==Number(v).toString() && Number(v)<256}).length==4; }
앗 맞아(+x)라고 할필요 없었는데! 그리고 3항연산도 할필요 없었는데!
바보바보 인증