본문 바로가기

c++

C++ 링크드 리스트를 이용한 스택 구현 (Single Linked List Stack C++) LIFO(FILO) 구조 STL의 STACK의 지원 함수:: PUSH- 스택에 값을 넣음 POP- 최근에 넣은 값을 리턴하고 삭제 TOP- 가장 최근값을 리턴 EMPTY - STACK이 비어있다면 TRUE 출력 /* 싱글링크드 리스트를 이용해 실제 사용되는 stl(standard template library) 스택과 동일하게 구현 - 2019/05/18 xtar.tistory */ #include using namespace std; template class Node { public: T value; Node* next = nullptr; Node() {}; ~Node() {}; }; template class Stack { private: Node* head; Node* tail; public: S.. 더보기
C++ 커스텀 행렬 (Custom Vector3 For D3D) 전치행렬 (Transpose Matrix) 행렬의 곱 (Multiply Matrix) /** Custom Matrix 0.1v 2019/05/02 Direct 수업용 Matrix 제작 xtar.tistory.com */ #include using namespace std; // 행렬별 구조체 struct Matrix3X3 { float entry[3][3]; }; struct Matrix4X4 { float entry[4][4]; }; struct Matrix1X4 { float entry[1][4]; }; struct Matrix1X3 { float entry[1][3]; }; //4x4 전치행렬 Matrix4X4 TransposeMatrix4X4(Matrix4X4 _matrix) { Matrix4X4.. 더보기
C++ 싱글 링크드 리스트 구현 (Singly Linked List C++) 싱글 링크드 리스트는 단일 방향으로 한 노드는 값과 다음 노드를 가리키는 주소를 가지고 있다. 싱글 링크드의 제일 앞에 있는 값을 Front 또는 Head라고 함 싱글 링크드의 제일 뒤에 있는 값을 Back 또는 Tail이라고 함 node->value 현재의 노드가 저장한 값 node->next 다음 노드를 가리키는 주소 싱글 링크드 리스트에서 노드가 삭제될 때 전 노드는 삭제되는 노드의 다음 값만 가리키면 된다. 그 후 삭제될 노드는 delete를 이용해 동적 할당을 해제해 준다. 싱글 링크드 리스트에서 노드가 중간에 삽입될떄 새로 들어오는 노드는 기존에 있던 자리의 노드가 가리킨 앞의 노드를 가리키고 기존의 노드는 새로 들어온 노드를 가리키면 된다. (빨간색: 새로운 노드, 파란색: 기존 노드, 초록.. 더보기
프로그래머스 코딩테스트 연습 - 예산 LV1: (C++) 1.문제 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원해 줄 수 있는지 return 하도록 solution 함수를 완성해주세요. 2.입력 d budget re.. 더보기
C++ 커스텀 벡터 클래스 (Custom Vector3 Class For D3D) #include using namespace std; class Vector3 { public: float x; float y; float z; Vector3() { x = 0; y = 0; z = 0; } Vector3(float _x, float _y, float _z) { x = _x; y = _y; z = _z; } #ifndef 연산자 오버로딩 friend Vector3 operator+(const Vector3& a, const Vector3& b) // 벡터 덧셈 { float Vx = a.x + b.x; float Vy = a.y + b.y; float Vz = a.z + b.z; return Vector3(Vx, Vy, Vz); } friend Vector3 operator-(const .. 더보기
백준 1193번: 분수찾기 (C++) 1.문제무한히 큰 배열에 다음과 같이 분수들이 적혀있다.1/11/21/31/41/5…2/12/22/32/4……3/13/23/3………4/14/2…………5/1……………………………이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 2.입력첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 3.출력 첫째 줄에 분수를 출력한다. 소스코드#include using namespace std; int main() { int numerator=0; //분자 int denominator=0; //분모 int inputNu.. 더보기
백준 2292번: 벌집 (C++) 1.문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 2.입력첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 3.출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 소스코드#include using namespace std; int main() { int hive = 6; // 두번쨰 벌집 .. 더보기
백준 2438번: 별 찍기 -1 (C++) 1.문제첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 2.입력첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 3.출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 소스코드#include using namespace std; int main() { int star; // N 갯수 cin >> star; // N 입력 if (star 100) // 1 더보기
백준 10039번: 평균 점수 (C++) 1.문제상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다.어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다. 보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다.학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오. 2.입력입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다.점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평.. 더보기
백준 8958번: OX퀴즈 (C++) 1.문제"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다."OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 2.입력첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 3.출력각 테스트 케이스마다 점수를 출력한다. 소스코드#include using namespace std; int main() { ch.. 더보기