[스택/큐] 탑

yyeahh·2020년 8월 2일
0

프로그래머스

목록 보기
4/35
post-thumbnail

|| 코드 ||

[2020.07.27] 실패
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// heights_len은 배열 heights의 길이입니다.
int* solution(int heights[], size_t heights_len) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int chk[105] = {0};
    int* answer = (int*)malloc(sizeof(int) * heights_len);
    for (int i=heights_len-1; i>0; i--) {
        int p = 0;
        answer[i] = 0;
        for(int j=i-1; j>=0; j--) {
            if (chk[j]) p++;
            if (heights[i] <= heights[j] && !chk[j]) {
                answer[i] = j+1+p;
                chk[j] = 1;
                break;
            }
            
        }
    }
    return answer;
}
- 문제이해 부족
[2020.07.28] 성공
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int* solution(int heights[], size_t heights_len) {

int* answer = (int*)malloc(sizeof(int) * heights_len);
    for (int i=heights_len-1; i>0; i--) {
        answer[i] = 0;
        for(int j=i-1; j>=0; j--) {
            if (heights[i] < heights[j]) {
                answer[i] = j+1;
                break;
            }
        }
    }
    answer[0] = 0;
    return answer;
}
프로그래머스 문제 실종....

0개의 댓글