pseudo-programmer42 / push_swap_tester

23 stars 0 forks source link

push_swap 가이드 글 질문 #1

Open dongjle2 opened 8 months ago

dongjle2 commented 8 months ago

안녕하세요 push_swap 진행 중에 가이드 글을 보고 질문이 생겼는데 컨택할 수 있는 방법이 전혀 없어서 여기에 글을 씁니다. 가이드

  1. "3.2.2 스택 B"에서 if문의 부등호가 반대 아닌가요?

  2. "3.3 마무리" 수도코드를 바탕으로 한 코드인데 infinite recursion이 생겨서 무엇이 잘못인지 모르겠습니다. 봐주실 수 있나요?

    void    a_to_b(t_stack *a, t_stack *b, t_tmp_stacks *t)
    {
    int pivot;
    int rep;
    int i;
    int cnt_ra;
    
    if (a->top == 0)
        return ;
    pivot = find_pivot(a, &t->tmp_a);
    rep = a->top + 1;
    cnt_ra = 0;
    i = 0;
    while (rep--)
    {
        if (a->arr[a->top] <= pivot)
        {
            pb(a, b);
        }
        else
        {
            ra(a);
            cnt_ra += 1;
        }
    }
    while (i++ < cnt_ra)
        rra(a);
    a_to_b(a, b ,t);
    b_to_a(a, b, t);
    }
void    b_to_a(t_stack *a, t_stack *b, t_tmp_stacks *t)
{
    int pivot;
    int rep;
    int i;
    int cnt_rb;

    if (b->top == 0)
    {
        pa(a, b);
        return ;
    }
    rep = b->top + 1;
    pivot = find_pivot(b, &t->tmp_b);
    cnt_rb = 0;
    i = 0;
    while (rep--)
    {
        if (b->arr[b->top] > pivot)
        {
            pa(a, b);
        }
        else
        {
            rb(b);
            cnt_rb += 1;
        }
    }
    while (i++ < cnt_rb)
        rrb(b);
    a_to_b(a, b, t);
    b_to_a(a, b, t);
}
pseudo-programmer42 commented 8 months ago

제가 답장을 드린다는 걸 깜빡했네요. 부등호 부호는 말씀하신대로 반대로 바꾸는게 맞는 것 같습니다ㅎㅎ

코드는 음.. 저것만 봐서는 잘 모르겠네요.

근데 지금쯤이면 이미 통과하셨을 것 같네요;;ㅋㅋㅋ

2024년 3월 22일 (금) 오전 8:59, dongjle2 @.***>님이 작성:

안녕하세요 push_swap 진행 중에 가이드 글을 보고 질문이 생겼는데 컨택할 수 있는 방법이 전혀 없어서 여기에 글을 씁니다. [ https://automatic-saltopus-34b.notion.site/push_swap-c15e62229b9541d78fadec4d6aae8b50 ]

1.

"3.2.2 스택 B"에서 if문의 부등호가 반대 아닌가요? 2.

"3.3 마무리" 수도코드를 바탕으로 한 코드인데 infinite recursion이 생겨서 무엇이 잘못인지 모르겠습니다. 봐주실 수 있나요? `void a_to_b(t_stack a, t_stack b, t_tmp_stacks *t) { int pivot; int rep; int i; int cnt_ra;

if (a->top == 0) return ; pivot = find_pivot(a, &t->tmp_a); rep = a->top + 1; cnt_ra = 0; i = 0; while (rep--) { if (a->arr[a->top] <= pivot) { pb(a, b); } else { ra(a); cnt_ra += 1; } } while (i++ < cnt_ra) rra(a); a_to_b(a, b ,t); b_to_a(a, b, t); }

void b_to_a(t_stack a, t_stack b, t_tmp_stacks *t) { int pivot; int rep; int i; int cnt_rb;

if (b->top == 0) { pa(a, b); return ; } rep = b->top + 1; pivot = find_pivot(b, &t->tmp_b); cnt_rb = 0; i = 0; while (rep--) { if (b->arr[b->top] > pivot) { pa(a, b); } else { rb(b); cnt_rb += 1; } } while (i++ < cnt_rb) rrb(b); a_to_b(a, b, t); b_to_a(a, b, t);

}`

— Reply to this email directly, view it on GitHub https://github.com/pseudo-programmer42/push_swap_tester/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/APCIOINRHX3PY5M46KRXKFLYZNX4ZAVCNFSM6AAAAABFCMO6RSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGIYDCNBRHAZTKOA . You are receiving this because you are subscribed to this thread.Message ID: @.***>