본문 바로가기
IT/Programming

사다리 타기(C++)

by 헬로덱 2007. 8. 8.
C++로 구현한 사다리 타기

아주 간단하고 무식한 알고리즘을 이용하여 만들어본 사다리 타기 게임입니다.
무식한 알고리즘이 떠오른 뒤부터는 비교적 쉬웠네요.

문제
http://isel.cs.pusan.ac.kr/~lik/DataStructures/assign1.htm - 부산대학교 정보컴퓨터공학부 이기준 교수님

#include<iostream>
#include<fstream>
using namespace std;
istream &fin=*new ifstream("ladder.in");
ostream &fout=*new ofstream("ladder.out");

class ladder{
public:
    void init(int post, int crossbar);
    void play(int post);
    void print(int post);

private:
    int point[10][100];
    int post, crossbar;
    int answer[100];
    int a,b;
    char ch;
};
void ladder::init(int post, int crossbar)
    {
        for(int i=0; i<post; i++)
        {
            for(int j=0; j<crossbar; j++)
                point[i][j] = 0;
        }
        for(i=0; i<crossbar; i++)
        {
            fin>>a>>b;
            point[a-1][b]=1;
            point[a][b]=2;
        }
    };
void ladder::play(int post)
    {
        for(int post_p=0; post_p<post; post_p++)
        {
            int p=post_p;
            for(int c=99; c>=0; c--)
                {
                    if(point[p][c]==1 && point[p+1][c]==2)
                        p++;
                    else if(point[p][c]==2 && point[p-1][c]==1)
                        p--;           
                    if(c==0)
                        answer[p]=post_p;
                }
        }
    };
void ladder::print(int post)
    {
        for(int k=0; k<post; k++)
        {
            ch = answer[k]+65;
            fout<<ch<<" ";
            cout<<ch<<" ";
        }
};
       
int main()
{
    int post, crossbar;
    fin >> post >> crossbar;

    ladder first;
    first.init(post,crossbar);
    first.play(post);
    first.print(post);
       
    return 0;
}

반응형

댓글