전체 글(170)
-
희소 다항식 구하기
자료구조 들어가면 기초로 푼다는 희소 다항식 문제다. 다른 사람들의 풀이를 봤을 땐 다들 스위치로 케이스를 나눠서 풀던데 난 다르게 풀었다. 그래도 다들 그렇게 푸는건 그게 제일 나은 코드란 거겠지...? #include #include //이 코드에선 swap을 사용한다// #define MAX 80 using namespace std; class term {//각 항을 저장하는 클래스// int expon; float coeff; public: term() { expon = 0; coeff = 0; } void termSet(int x, float y) {//너무나도 직관적인 셋팅함수// coeff = y; expon = x; } float callcoeff() { return coeff; } int..
2022.05.26 -
순환을 이용한 트리그리기(수정)
문제 자체는 잘 해결이 된다만 범위를 벗어나면 트리가 예쁘게 그려지지 않는게 조금 흠이다. 그렇지만 트리 모양을 위해 2배수로 늘어나는 동작 때문에 다른 방안이 있는지는 잘 모르겠다. //이 코드는 문제 자체는 답이 나오지만 문제가 요구하는 로직이 아니라서 잘못된 풀이이다. 동적 계획법을 활용해야 하므로 동적계획법을 활용한 코드로 현재 글에 업데이트한다. -수정본-까지 내려가면 정답 코드가 있다.// #include int loop = 1; void draw_tree(int row, int left, int right) {//순환 호출// if (row==4) { return; } else { left = right/2;//left라고 쓰라길래 썼지만 정작 left라는 이름에 맞게 쓴지는 모르겠다.// ..
2022.05.26 -
stack을 이용한 DFS최적 경로 미로탐색
일단 미로찾기 문제에서 DFS를 구현했다는 가정에서 시작한다. 미로찾기인데 어째서 굳이 DFS인가? 라고 한다면 그것은 DFS의 특징 때문이다. DFS는 한 방향으로 끝까지 간 다음 그곳이 도착지가 아니면 왔던길을 다시 거슬러 올라가는 특징이 있다. 이것을 이용해 최적 탐색을 구현할 수 있는 것이다. 일단 DFS를 할 스택과 분기점에 왔을때 그 좌표를 캐치해서 저장할 스택, 총 2개의 스택이 필요하다. 이 코드에선 STACK을 DEQUE로 구현했다. 데이터 흐름만 바꿔주면 QUE, STACK이 다 되니 DEQUE가 참 편하다. 그리고 다른 문제에다가 시험해보진 않아서 다른 미로찾기 문제에서도 돌아가는지는 미지수이다. bool CheckNode(int r,int c) { int cnt = 0; bool c..
2022.05.26 -
(c++)연결리스트를 이용한 그래픽 편집기
#include #include using namespace std; class UI {//사용자로 부터 입력받는 클래스// static int x; public: int printUI() { cout > x; return x; } int printdraw() { cout > x; return x; } int printdelete() { cout > x; return x; } }; int UI::x = 0; class Shape {//연결리스트 클래스이다.// Shape* next; protected: virtual void draw() = 0; public: Shape() { next = NULL; } virtual ~Shape(){} void print() { draw(); } Shape* add(S..
2022.05.26 -
(c++)비행기 예약 프로그램
비행기 예약 프로그램이다. 동적할당을 이용해 운영하는 프로그램인데, 처음 문제를 봤을때 헉! 했으나 몇시간 투자하니 풀리는 문제였다. c++이수과정에서 어려운 문제는 다 이렇게 문제만 보면 막막한데 차근차근 구현해보면 풀리는 문제들이었다. #include #include using namespace std; class Console {//사용자에게 입력받고 넘기는 클래스// int ch; public: Console() { ch = 0; } void start() { cout > ch; } int reservation() { int x; cout > x; x -= 1; calltime(x); return x; } void calltime(int i) { if (i == 0) { cout name = ..
2022.05.26 -
c언어 몬스터게임
앞에 있던 틱택토보단 쉬웠던 과제였다. 관건은 각각의 유닛들의 위치를 저장하는 것이다. #include #include #include #define X 10 #define Y 10 void start(int tile[X][Y]); void print(int tile[X][Y]); int random(int z); int work(int z); int main() { srand((unsigned)time(NULL)); int tile[X][Y]; int i;//반복문// int x=0, y=0;//좌표// int xu, xM, xm, xg;//x좌표 백업// int yu, yM, ym, yg;//y좌표 백업// int lapf=0; start(tile); for (i = 0; i < 4; i++) { w..
2022.05.26