개발 일지

TIL(24.03.05)

만식 2024. 3. 5. 16:14

 



프로그래머스 코딩테스트

 

1. 배열의 평균값

 

풀이

double solution(int numbers[], size_t numbers_len) {
    double answer = 0;
    for (int i = 0; i < numbers_len; i++){
        answer += numbers[i];
    }
    answer /= (numbers_len);
    return answer;
}

 

 

2. 머쓱이보다 키 큰 사람

 

풀이

int solution(int array[], size_t array_len, int height) {
    int answer = 0;
    for(int i = 0; i < array_len; i++){
        if (array[i] > height){
            answer++;
        }
    }
    return answer;
}

 

3. 배열 원소의 길이

 

 

풀이

int* solution(const char* strlist[], size_t strlist_len) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int* answer = (int*)malloc(1);
    for(int i=0; i < strlist_len; i++){
        answer[i] = strlen(strlist[i]);
    }
    return answer;
}

 

4. 배열 뒤집기

 

 

풀이

// num_list_len은 배열 num_list의 길이입니다.
int* solution(int num_list[], size_t num_list_len) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int* answer = (int*)malloc(sizeof(int)*num_list_len);
    for(int i=num_list_len-1;i>=0; i--)
    {
          answer[num_list_len-1-i]=num_list[i];  
    }
    return answer;
    
}

 

5. 중복된 숫자 개수

 

풀이

int solution(int array[], size_t array_len, int n) {
    int answer = 0;
    for(int i = 0; i<array_len; i++)
    {
        if (n==array[i])
        {
            answer=answer+1;
        }
    }
    return answer;
}

 

6. 배열 자르기

 

풀이

// numbers_len은 배열 numbers의 길이입니다.
int* solution(int numbers[], size_t numbers_len, int num1, int num2) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int j = num2 - num1 +1;
    int* answer = (int*)malloc(sizeof(int)* j);
    int k = 0;
    for(int i =num1; i <= num2; i++){
        answer[k]=numbers[i];
        k++;
    }
    return answer;
}

 

7. 문자열 뒤집기

 

 

풀이

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int len = strlen(my_string);
    char* answer = (char*)malloc(len);
    
    for (int i = 0; i < len+1; i++)
    {
        answer[i] = my_string[len-1-i];
    }
    return answer;
}

 

8. 편지

 

풀이

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
int solution(const char* message) {
    int answer = 0;
    int size = 0;
    for (int i = 0; message[i] != '\0'; i++){
        if(message[i] >= 'a' || message[i] <= 'z')      // 알파벳 소문자
            size++;                            
        else if (message[i] >= 'A' || message[i] <= 'Z') // 알파벳 대문자
            size++;                       
        else if (message[i] == '!' || message[i] == '~' || message[i] == ' ')   // 기호비교, 공백
            size++;
    }
    answer = size * 2;
    return answer;
}

 

9. 점의 위치 구하기

 

 

풀이

int solution(int dot[], size_t dot_len) {
    int answer = 0;
    if(dot[0]>0&&dot[1]>0)//둘다 플러스
    {
        answer=1;
    }
    else if(dot[0]<0&&dot[1]>0)//X -
    {
        answer=2;
    }
    else if(dot[0]<0&&dot[1]<0)//둘다 -
    {
        answer=3;
    }
    else if(dot[0]>0&&dot[1]<0)//Y -
    {
        answer=4;
    }
    return answer;
}

 


출처 : https://school.programmers.co.kr/learn/challenges?order=recent

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr