전체 글 148

링크드 리스트 공부

#include using namespace std; typedef struct tagNode{ // typedef 는 c++ 에서는 안써도 되지만 C언어와의 호환을 위해 사용해주는 것이 좋다. tagNode* nextNode = NULL; int data; }Node; Node* CreateNode(int newData){ Node* newNode = (Node*) malloc(sizeof(Node)); // 자유저장소애 Node 를 할당한다. newNode -> data = newData; return newNode; } void appendNode(Node** Head, Node* newNode){ // 여기서의 Node** Head 는 Head노드의 주소 값이다. 일단 Head노드 자체가 Node..

algorithm 2021.12.30

BOJ 10844번

dp 활용 문제 여기서 dp 란? 작은 문제들을 해결하여 결국에는 최종문제를 해결하는 방법이다. 이때에 작은 문제들을 해결하는 방법이 동일함을 이용하기도 한다. 그리고 앞서 해결하는 작은 문제들의 결과들을 저장하고, 이용해서 문제 해결 시간을 줄이는 방법이다. 이 문제는 i 자리 수 일때에 끝자리가 j 인 계단의 개수를 저장하고, 활용하여 최종 적인 문제를 해결하였다. 예를 들어서 2자리 수 이고, 끝자리가 3일때에 계단의 수는 1자리수 이고 끝자리가 2인 계단과 끝자리가 3인 계다느이 수를 합친것 과 같다. 따라서 dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1] 라고 표현할 수 있다. 이때에 예외 가 되는 경우는 끝자리가 0 일때와 9 일때를 구하는 것이다. 이 케이스만 예외처리를..

algorithm 2021.12.15

알고리즘 공부를 위한 c++ 공부

선행 처리문 : #include , #define문은 선행처리기에서 처리되는 선행처리문 입니다. 이때 c에서는 .h를 붙이지만 C++은 붙이지 않아도 된다. ex) #include #include C에서는 위에거 만 , C++은 둘다 가능 네임스페이스 : C++에서는 c++의 표준 구성 요소인 클래스, 함수, 변수등을 std라는 이름 공간에 저장을 하게 된다. 따라서 네임스페이스에 있는 정의들을 사용하려면 앞에 std::를 붙여주어야 한다. 하지만 선행처리문 다음에 using namespace std;를 추가하게 된다면, 붙이지 않아도 된다. iostream : C++에서의 입출력을 담당하는 것은 모두 객체이다. 출력은 cout 객체를 사용하는데 cout 변수명; 이렇게 작성한다. 의미는 >> 추출연산자..

algorithm 2021.08.16