Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

맛만 볼게요

프로그래머스 - 과일 장수 - c 본문

c/프로그래머스

프로그래머스 - 과일 장수 - c

여기우리집 2022. 11. 15. 16:37
프로그래머스 - 과일 장수
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int compare(const void* a, const void* b) {
    if (*(int*)a > *(int*)b)
        return -1;
    else if (*(int*)a < *(int*)b)
        return 1;
    else return 0;
}

int solution(int k, int m, int score[], size_t score_len) {
    int answer = 0;
    int num = (int)score_len / m;
    int **tmp;

    // score sorting
    qsort(score, score_len, sizeof(int), compare);

    // split size m
    tmp = malloc(sizeof(num));

    for (int i = 0; i < num; i++) {
        *(tmp + i) = malloc(m * sizeof(int));
        for (int j = 0; j < m && m*i + j < (int)score_len; j++) {
            *(*(tmp + i) + j) = score[m * i + j];
        }
        answer += *(*(tmp + i) + m - 1) * m;    // --- 왜 여기선 되는데
    }

    // for (int i = 0; i < num; i++) {
        // answer += *(*(tmp + i) + m - 1) * m; // --- 여기선 안 될까요..?
    // }

    return answer;
}

첫 답안.

당연히 m 길이 별로 나눠서 저장해 둬야 할 줄 알고 이케 씀.

 

주석을 보면 분명 같은 문장에 같은 반복 조건임에도 아래에 따로 썼더니

프로그래머스 사이트에서 오류가 생겼음.

저 부분을 지나는 순간 answer가 무조건 0이 돼 버리는 마법...

비주얼 스튜디오에서도 문제 없었고, 리눅스 gcc에서도 문제 없었으나, 오직 프로그래머스에서만..ㅠ

 

하여튼 올려서 윗 반복문에 끼워넣으니 되더라.

 

 

 

 

 

제출하고 다른 답안들을 보니...

어..? tmp 아무 쓸모가 없었네..??

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int compare(const void* a, const void* b) {
	if (*(int*)a > *(int*)b)
		return -1;
	else if (*(int*)a < *(int*)b)
		return 1;
	else return 0;
}

int solution(int k, int m, int score[], size_t score_len) {
	int answer = 0;
	int num = (int)score_len / m;

	// score sorting
	qsort(score, score_len, sizeof(int), compare);

	for (int i = 0; i < num; i++) {
        answer += score[m * i + m - 1] * m;
	}

	return answer;
}

 

쓸데 없이 길게 썼었더라...

'c > 프로그래머스' 카테고리의 다른 글

프로그래머스 - 등대 - c  (1) 2022.11.20
프로그래머스 - 숫자 카드 나누기 - c  (0) 2022.11.15
Comments