본문 바로가기

전체 글64

[자료구조] Double Linked List (C++) 오늘 아침에 새로운 스터디에서 다시 더블링크드리스트를 공부했다.이전과 다르게 private member로 Tail을 추가했다.공부한 날 다시 짜서일까? 1시간 반 정도만에 완성했다. /*1023 더블링크드리스트*/#include using namespace std;typedef struct Node{ int Data; Node* PrevNode; Node* NextNode; Node(int NewData) : Data(NewData), PrevNode(nullptr), NextNode(nullptr) {};};class DoubleLinkedList{public: DoubleLinkedList() : Head(nullptr), Tail(nullptr), Count(0) {}; ~DoubleLinkedLi.. 2023. 10. 23.
[자료구조] Single Linked List (C++) 자료구조 스터디를 옆자리 짝꿍과 다시 시작했다.매주 1개씩 구현해보기로 했다.오랜만에 다시 짜니까 2시간 정도 걸렸다.  아래는 C++로 구현한 싱글링크드리스트!private member로 Head와 Count변수를 썼다.노드 추가 시 Count++,노드 제거 시 Count--해서 노드 수를 카운트 해줬다./*23-10-15 다시 짜본 싱글링크드리스트*/#include using namespace std;typedef struct Node{ int Data; Node* NextNode; Node(int NewData) : Data(NewData), NextNode(nullptr) {};};class SingleLinkedList{public: SingleLinkedList() : Head(nullptr).. 2023. 10. 15.
[스택, 배열] 28278 : 스택2 https://www.acmicpc.net/problem/28278 28278번: 스택 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 저번주 벡터로 풀어 봤던 스택문제를 이번엔 배열과 클래스를 이용해서 짜봤다. 근데 출력초과가 뜨는 것이 아닌가? 출력하지 말아야 할 것을 출력하면 뜨는 오류라고 했다. 곰곰히 다시 보니 2번에서 출력오류가 났다. 2번 명령 : 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다. 무슨 오해냐? 나는 맨위를 삭제하고, 나머지 정수를 출력하라고 하는 줄 알았다... 하지만 삭제한 그 애를 출력하라.. 2023. 9. 13.
[C++] rand() 21번 줄에 rand() % max + min을 하면 최솟값과 최댓값 사이 임의의 값을 얻을 수 있다. 근데 왜? 1) rand()는 0 ~ RAND_MAX 사이의 난수를 생성함 2) % 나머지 연산자는 rand()를 max로 나눌 때 나머지를 구함. 그럼 난수의 범위가 0 ~ max-1로 제한됨 3) +min을 하면 범위가 0~max-1 => min ~ max-1+min으로 범위 설정 2023. 9. 13.
[C++] cmath 라이브러리 #include 추가해야 한다. 제곱근 sqrt 중학생 이후로... 제곱근 처음 들어봐서 검색해봤는데 루트 씌운 애였다. 4 = 2*2 니까 4의 제곱근은 2, 스퀘어루트여서 sqrt임 POW(2,3) 2의 3승 또는 2의 세제곱 = 8 소수점! double bill_total {102.78}; int number_of_guests {5}; double individual_bill = bill_total/number_of_guests; double individual_bill_1 = ceil(individual_bill*100)/100; -> 마지막 코드는 소수점 이하 2자리까지 나타내는 줄이다. individual_bill = 20.556 20.556 * 100 = 2,055.6 올림하면 2,055 1.. 2023. 9. 13.
[스택] 10773, 벡터 사용한 스택 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 처음 도전한 코드(실패) 4,3,0,1,0은 0이 나와서 오예! 하고 돌렸는데, 바로 실패였다. 이유는 0이 연속으로 나왔을 때 오답이 나왔기 때문.. #include #include #include using namespace std; int main() { int K {}; int temp{}; int sum{}; vector numbers{}; cin >> .. 2023. 9. 8.