Leetcode - String 문제 (2)

숲사람·2022년 5월 17일
0

멘타트 훈련

목록 보기
28/237

Easy문제들, 푸는 대로 상단에 업데이트

1108. Defanging an IP Address

주어진 IP주소의 .[.]으로 변경해서 리턴하라.

Input: address = "255.100.50.0"
Output: "255[.]100[.]50[.]0"

이문제는 다른 언어 개발자가 보면 어이없는 문제겠지만, C언어로 푼다고 하면 그정도로 어이없게 쉬운 문제는 아님.

char * defangIPaddr(char * address){
    int a_size = strlen(address);
    int ret_size = a_size + 7;
    char *ret = (char *)malloc(ret_size * sizeof(char));
    int retcnt = 0;
    
    for (int i = 0; i < a_size; i++) {
        if (address[i] == '.') {
            ret[retcnt++] = '[';
            ret[retcnt++] = '.';
            ret[retcnt++] = ']';
            continue;
        }
        ret[retcnt++] = address[i];
    }
    ret[retcnt] = '\0';
    return ret;
}

2011. Final Value of Variable After Performing Operations

이 프로그래밍 언어는 한개의 변수에대한 4개의 연산자만 지원하는 언어다. 프로그램이 주어질때 결과값을 계산하라.

++X and X++ increments the value of the variable X by 1.
--X and X-- decrements the value of the variable X by 1.
Input: operations = ["X++","++X","--X","X--"]
Output: 0

간단한 프로그래밍 언어라는게 재미있긴한데, 좋은 문제같지는 않음.

int finalValueAfterOperations(char ** operations, int operationsSize){
    int ret = 0;
    for (int i = 0; i < operationsSize; i++) {
        if (strcmp(operations[i], "--X") == 0)
            ret--;
        else if (strcmp(operations[i], "X--") == 0)
            ret--;
        else if (strcmp(operations[i], "++X") == 0)
            ret++;
        else if (strcmp(operations[i], "X++") == 0)
            ret++;
    }
    return ret;
}
profile
기록 & 정리 아카이브 용도 (보다 완성된 글은 http://soopsaram.com/documentudy)

0개의 댓글