디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

가장 황당했던 과제 감점

jujubar9갤로그로 이동합니다. 2009.10.23 00:58:03
조회 124 추천 0 댓글 3

문제 : 신비의 숫자 6174
5432-2345=3087
8730-0378=8352
8532-2358=6174
7641-1467=6174
가 나오는데 이렇게 나오는 과정이 몇번이 되는지 프로그래밍하라라였음
뭐 1111 2222숫자는 인풋에 없는걸로 문제로 나왔으니 배제했었는데
10점 만점에 인풋방식 제대로 설명도 안해놓고 엔터 안치게 된다고 10점중에 5점을 감점당함
그 이후로 이 과목에 손을 뗏음 조교가 엿같아서 말이지 

참고로 이걸 만든 시간은 대강 1시간정도였던걸로 기억함. 의외로 생각미스가 난게 많더라고여 \'ㅅ\' 
근데 다른 과제는 시망 ㄲㄲ

결론 : 프로그래머라면 백트래킹에 관련되서 알아야한다 모르면 프로그래머아님 코더임 \'ㅅ\'


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
int count=0;
int start(int*);
int upanddown(const void *_elem1, const void *_elem2)
{
        int* elem1=(int*)_elem1;
        int* elem2=(int*)_elem2;
        if(*elem1>*elem2) return -1;
        else if(*elem1<*elem2) return 1;
        else return 0;
}
int downandup(const void *_elem1, const void *_elem2)
{
        int* elem1=(int*)_elem1;
        int* elem2=(int*)_elem2;
        if(*elem1>*elem2) return 1;
        else if(*elem1<*elem2) return -1;
        else return 0;
}
int main(void){
        FILE *fp;
        int dataset[4], i, final;
        printf("Type 4 numbers: ");
        fp=fopen("input.txt", "w");
        for(i=0 ; i<4 ; i++){
        dataset[i]=getche()-48;
        fprintf(fp, "%d", dataset[i]);
        }
        fclose(fp);

        fp=fopen("output.txt", "w");
        final=start(dataset);
        printf("\\n%d", final);
        fprintf(fp, "%d", final);
        fclose(fp);

        return 0;
}
int start(int* dataset){
        if(dataset[0]==6&&dataset[1]==1&&dataset[2]==7&&dataset[3]==4){
         printf("6174");
         return count;
        }
        else{
        count++;
        int i, uptodown[4], downtoup[4];
        qsort((void*)dataset, 4, sizeof(int), upanddown);
        for(i=0 ; i<4 ; i++) uptodown[i]=dataset[i];
        for(i=0 ; i<4 ; i++) printf("%d", uptodown[i]);
        printf("\\t");
    qsort((void*)dataset, 4, sizeof(int), downandup);
        for(i=0 ; i<4 ; i++) downtoup[i]=dataset[i];
        for(i=0 ; i<4 ; i++) printf("%d", downtoup[i]);
        printf("\\t");
        for(i=3 ; i>=0 ; i--){
                if(uptodown[i]<downtoup[i]){
                        dataset[i]=(uptodown[i]+10)-downtoup[i];
                        downtoup[i-1]=downtoup[i-1]+1;
                }
                else dataset[i]=uptodown[i]-downtoup[i];
        }
        for(i=0 ; i<4 ; i++) printf("%d", dataset[i]);
        return start(dataset);
        }
}

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2