게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
문제하나 부탁드려봅니다.
게시물ID : programmer_1314짧은주소 복사하기
작성자 : 당찬당찬
추천 : 0
조회수 : 331회
댓글수 : 2개
등록시간 : 2014/02/18 23:19:54
다름이 아니라 최근 게임을 하다가 잘 안풀리길래 프로그램으로 만들어보면 어떨까 생각해봤습니다. 문제는 아래와 같습니다.
 
레ㅇ튼교수 시리즈인데요, 나이트를 움직여(장기의 마 랑 같아요)판 전체를 한번씩만 도는거 입니다.
 
Screenshot_2014-02-18-23-07-58.png
 
시작은 0,0 지점(왼쪽 위)에서 시작합니다.
 
만들어봤는데 결과는 성공한것 처럼(?) 보이지만 그 경로를 찍는 문자열을 잘 모르겠습니다.
 
질문 1. 풀이가 맞을까요?
질문 2. 문자열에 변수를 넣는방법이 궁금합니다.( 예를들어    str= "%d 지점으로 이동했습니다." 처럼요 <- 이문장은 틀렸겠죠?^^;;)
 
아래는 제가 작성한 코드입니다. 120만번 호출끝에 완성하네요..
C언어 공부한지 13년전이고 프로그래밍을 할일이 없어서 코드가 좀 안이쁩니다.
 
#include
#include

int a[6][6] = {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};
char msg[];
char *temp;
long int count =0;
int is_end(void)
{
   
    int i,j;
    for(i=0;i<6;i++){
                    for(j=0;j<6;j++)
                    {
                                    if(a[i][j] == 0) return 0;
                    }
    }
   
    return 1;
}

int go(int i,int j)
{
    a[i][j] = 1;
    count++;  
    printf("%ld %d,%d\n",count,i,j);
    if(i-1 >=0 && j-2 >=0 && !a[i-1][j-2]) go(i-1,j-2);
    if(i-2 >=0 && j-1 >=0 && !a[i-2][j-1]) go(i-2,j-1);
    if(i-2 >=0 && j+1 <=5 && !a[i-2][j+1]) go(i-2,j+1);
    if(i-1 >=0 && j+2 <=5 && !a[i-1][j+2]) go(i-1,j+2);
   
    if(i+1 <=5 && j-2 >=0 && !a[i+1][j-2]) go(i+1,j-2);
    if(i+2 <=5 && j-1 >=0 && !a[i+2][j-1]) go(i+2,j-1);
    if(i+2 <=5 && j+1 <=5 && !a[i+2][j+1]) go(i+2,j+1);
    if(i+1 <=5 && j+2 <=5 && !a[i+1][j+2]) go(i+1,j+2);
    
    if(is_end())
    {
              printf("Success");
              system("pause");
              return 0;
    }
    else
    {
        a[i][j] = 0;
        return 0;
    }
  
}
int main(void)
{
    int i,j;
    go(0,0);
 
    for(i=0;i<6;i++){
                    for(j=0;j<6;j++)
                    {
                                    printf("%d",a[i][j]);
                    }
                    printf("\n");
    }
    system("pause");
    scanf("%d",&i);
    return 0;
}
--------------------------------------------라고 글을 올렸는데 다른방법으로 해결하였습니다.^^;  감사합니다.(수정) ------------------------
                    
                   
 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호