본문 바로가기
CodeSignal

isIPv4Address

by Doromi 2023. 12. 10.
728x90
반응형

주어진 문자열이 IPv4 주소의 규칙을 따르는지 확인하는 문제입니다. IPv4 주소는 다음과 같은 규칙을 갖습니다:

0부터 255 사이의 숫자로 구성된 4개의 숫자 그룹으로 이루어져야 합니다.
숫자와 숫자 사이에는 마침표(".")가 있어야 합니다.
각 숫자는 0으로 시작하지 않아야 합니다.
주어진 예시와 규칙을 고려하여 주어진 문자열이 IPv4 주소의 조건을 만족하는지 확인하는 함수를 작성해야 합니다.

bool solution(string inputString) {
    string[] inputArr = inputString.Split(".");
    if(inputArr.Length != 4) return false;
    for(int i = 0;i<inputArr.Length;i++){
        if(Int32.TryParse(inputArr[i],out int outVal)){
            if(outVal < 0 || outVal > 255) return false;
            if(outVal < 10  && inputArr[i].Length > 1){
                 return false;
            }
        }
        else return false;
    }
    return true;
}
.을 기준으로 문자열을 분할하고, 분할된 부분이 4개인지 확인합니다.

각 부분이 정수로 변환 가능한지(Int32.TryParse) 확인하고, 범위가 0부터 255 사이에 있는지 확인합니다.

만약 숫자가 한 자리이면서 0으로 시작한다면(outVal < 10 && inputArr[i].Length > 1), 유효하지 않은 것으로 간주합니다.

전반적으로 코드는 주어진 IPv4 주소의 조건을 검사하고, 각 부분이 유효한지 확인합니다. 

예를 들어, "172.16.254.1"과 같은 유효한 IPv4 주소는 true를 반환하고, "172.316.254.1"과 같이 유효하지 않은 주소는 false를 반환합니다.

 

 

※ String Length 함수 참고
https://learn.microsoft.com/ko-kr/dotnet/api/system.string.length?view=net-8.0

728x90
반응형

'CodeSignal' 카테고리의 다른 글

avoidObstacles  (0) 2023.12.12
arrayMaximalAdjacentDifference  (0) 2023.12.11
areEquallyStrong  (1) 2023.12.10
palindromeRearranging  (2) 2023.12.10
arrayChange  (0) 2023.12.09