2021/11/12 금요일

Gong Intaek·2021년 11월 12일
0

일상

목록 보기
154/1031
post-thumbnail

TIL


오늘 한 일

  • 휴식
  • leetcode
    • Validate IP Address. (medium)

문제 풀이

Validate IP Address. (medium)

입력된 IP 주소를 바탕으로 IP 주소의 타입을 반환하는 문제. 규정된 IP 타입은 IPv4, IPv6 두종류이며, 규저하는 조건이 명시되어있다. 명시된 조건외의 주소의 경우 Neither를 돌려주어야 한다.

  • IPv4

    • . 로 구분되는 4개의 숫자로 이루어져 있으며 숫자의 범위는 0 ~ 255 이다.
  • IPv6

    • : 로 구분되는 8개의 문자열로 이루어져 있으며 각 문자열의 길이는 1 ~ 4 이다.
    • 문자열은 숫자와 알파벳 a - f 로 구성되며 대소문자 모두 포함한다.
    • 0이 문자열 앞에 나와도 가능하다고 명시되어있다.

위 조건들을 바탕으로 문제 풀이를 진행하였다. 우선 가장먼저 언급된 주소의 구성을 바탕으로 첫번째 거름망을 구성하였다.
IPv4의 경우 .를 기준으로 split 하여 길이가 4인지를 확인하였고, IPv6의 경우 : 를 기준으로 하여 길이가 8인지를 확인하였다.

앞에서 통과된 경우 구성되는 내용물이 범위내의 숫자인지를 확인하였다. isNaN으로 숫자여부를 판단하고, 지수와 같이('1e1') 문자와 같이 작성된 경우 숫자변환후 문자화하였을때 일치하는지를 판별 하였다. 숫자인 경우 규정된 범위내인지를 확인하였으며 이를 모든 요소에서 통과할경우 IPv4의 결과를 돌려주게 하였다.

IPv6 의 경우 각 요소의 길이를 판단하고, 규정된 길이 내일경우 요소의 문자 하나하나가 숫자와 규정된 알파벳으로 구성되는지를 확인하였다. isNaN으로 문자로 판별된 경우에만 toLowerCase를 사용하여 대문자를 소문자화 시켜서 범위를 줄이고, a-f 일때만 통과하고 아닌경우 검증을 중단하고
Neither를 돌려주게 하였다.


오늘은...

휴식

profile
개발자가 되기위해 공부중

0개의 댓글