편집 기록

편집 기록
  • 프로필 엽토군님의 편집
    날짜2019.12.29

    c언어 코드업 알고리즘 문제 질문


    우선 이 질문 자체가 코드업(타사이트)에있는 내용을 물어보는 거라서 이런거 질문해도 되는지... 염려되지만 너무 궁굼해서 올려볼게요 ㅠ

    문제는 아래와 같습니다

    문제번호 1509

    10*10 크기의 보드판이 있다.

    각 말들은 제일 아래쪽에서 위쪽 방향으로 진격한다.

    장애물은 0이 아닌 숫자로 나타내며, 0보다 크면 블럭 장애물, 0보다 작으면 구덩이 장애물, 0이면 평지이다.

    10*10 보드판의 정보가 입력되고, 각 세로줄 아래에 말이 있으면 1, 없으면 0이 입력될 때 각 말의 생존여부를 구하는 프로그램을 구현하시오.

    입력 10*10의 보드판의 정보가 입력된다.

    11째줄에 각 말의 위치 여부가 입력된다.(1:있음, 0:없음)

    출력 블럭 장애물에 부딪혀서 실패시 "세로줄 번호 crash",

    구덩이에 떨어져서 실패시 "세로줄 번호 fall",

    무사히 통과하면 "세로줄 번호 safe"를 출력한다.

    (단, 말이 없는 줄은 아무결과도 출력하지 않는다.)

    입력 예시

    0 0 0 0 0 0 0 0 0 0 
    0 2 0 0 0 0 0 0 0 0 
    0 0 -1 0 0 0 0 0 2 0 
    0 0 0 0 0 0 0 6 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 -4 2 0 0 0 
    0 0 2 0 0 0 0 0 0 0 
    0 0 0 0 3 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    1 1 0 0 1 1 0 1 0 1 
    

    출력 예시

    1 safe
    2 crash
    5 crash
    6 fall
    8 crash
    10 safe
    

    도움말

    1번 줄 말은 무사 통과

    2번 줄 말은 2 크기의 장애물에서 부딪혀 실패.

    5번 줄 말은 3 장애물에서 부딪혀 실패

    6번 줄 말은 -4 장애물에서 빠져 실패

    8번 줄 말은 6 장애물에서 부딪혀 실패

    10번 줄 말은 무사 통과

    ==============================================================================

    우선 제가 짠 코드는 이렇습니다

    #include <stdio.h>
    int main(){
        int ar[11][10];
        int i,j;
        int count=0;
    
        for(i=0;i<11;i++){
            for(j=0;j<10;j++){
                scanf("%d",&ar[i][j]);
            }
        }
    
        for(i=0;i<10;i++){
            if(ar[10][i]==1){
                count=0;
                for(j=0;j<10;j++){
                    if(ar[j][i]>0){
                        printf("%d crash\n",i+1);
                        break;
                    } 
                    else if(ar[j][i]<0){
                        printf("%d fall\n",i+1);
                        break;
                    }
                    count++;
                }
                if(count==10){
                    printf("%d safe\n",i+1);
                }
            }
        }
        return 0;
    }
    

    =================================================================================

    계속 테스트 케이스 3번에서 막히는데 도저히 아무리 봐도(한 삼일은 본것 같습니다 ㅠ) 더이상 수정할 곳도 그리고 오류가나는 부분도 이해가 안가서요 ㅠ

    오류 내용은

    ==============================================

    입력:

    -1 0 0 0 0 0 0 0 -1 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0 0 0 0 0 
    1 1 1 1 1 1 1 1 1 1 
    1 1 0 0 1 1 0 1 0 1 
    

    정답

    1 crash
    2 crash
    5 crash
    6 crash
    8 crash
    10 crash
    

    출력 결과

    1 fall
    2 crash
    5 crash
    6 crash
    8 crash
    10 crash
    

    ==============================================================================

    이렇습니다....

    제발 제가 실수한 거였으면 좋겠네요.... 그렇지않으면 이문제에 쏟은 시간이랑 멘탈마저 깨저버려서 더이상 공부도 안되네요 ㅠ

  • 프로필 알 수 없는 사용자님의 편집
    날짜2019.12.29

    c언어 코드업 알고리즘 문제 질문


    우선 이 질문 자체가 코드업(타사이트)에있는 내용을 물어보는 거라서 이런거 질문해도 되는지... 염려되지만 너무 궁굼해서 올려볼게요 ㅠ

    문제는 아래와 같습니다

    문제번호 1509

    10*10 크기의 보드판이 있다.

    각 말들은 제일 아래쪽에서 위쪽 방향으로 진격한다.

    장애물은 0이 아닌 숫자로 나타내며, 0보다 크면 블럭 장애물, 0보다 작으면 구덩이 장애물, 0이면 평지이다.

    10*10 보드판의 정보가 입력되고, 각 세로줄 아래에 말이 있으면 1, 없으면 0이 입력될 때 각 말의 생존여부를 구하는 프로그램을 구현하시오.

    입력 10*10의 보드판의 정보가 입력된다.

    11째줄에 각 말의 위치 여부가 입력된다.(1:있음, 0:없음)

    출력 블럭 장애물에 부딪혀서 실패시 "세로줄 번호 crash",

    구덩이에 떨어져서 실패시 "세로줄 번호 fall",

    무사히 통과하면 "세로줄 번호 safe"를 출력한다.

    (단, 말이 없는 줄은 아무결과도 출력하지 않는다.)

    입력 예시
    0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 2 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1

    출력 예시 1 safe 2 crash 5 crash 6 fall 8 crash 10 safe

    도움말 1번 줄 말은 무사 통과

    2번 줄 말은 2 크기의 장애물에서 부딪혀 실패.

    5번 줄 말은 3 장애물에서 부딪혀 실패

    6번 줄 말은 -4 장애물에서 빠져 실패

    8번 줄 말은 6 장애물에서 부딪혀 실패

    10번 줄 말은 무사 통과

    ==============================================================================

    우선 제가 짠 코드는 이렇습니다

    include

    int main(){ int ar[11][10]; int i,j; int count=0;

    for(i=0;i<11;i++){
        for(j=0;j<10;j++){
            scanf("%d",&ar[i][j]);
        }
    }
    
    for(i=0;i<10;i++){
        if(ar[10][i]==1){
            count=0;
            for(j=0;j<10;j++){
                if(ar[j][i]>0){
                    printf("%d crash\n",i+1);
                    break;
                } 
                else if(ar[j][i]<0){
                    printf("%d fall\n",i+1);
                    break;
                }
                count++;
            }
            if(count==10){
                printf("%d safe\n",i+1);
            }
        }
    }
    return 0;
    

    }

    =================================================================================

    계속 테스트 케이스 3번에서 막히는데 도저히 아무리 봐도(한 삼일은 본것 같습니다 ㅠ) 더이상 수정할 곳도 그리고 오류가나는 부분도 이해가 안가서요 ㅠ

    오류 내용은

    ==============================================

    입력: -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1

    정답 1 crash 2 crash 5 crash 6 crash 8 crash 10 crash

    출력 결과 1 fall 2 crash 5 crash 6 crash 8 crash 10 crash

    ==============================================================================

    이렇습니다....

    제발 제가 실수한 거였으면 좋겠네요.... 그렇지않으면 이문제에 쏟은 시간이랑 멘탈마저 깨저버려서 더이상 공부도 안되네요 ㅠ