본문 바로가기

cpp32

[코테] 스택, 큐 스택스택이란?LIFO 구조 (Last In First Out), 혹은 FILO 구조라고 할 수도 있음스택 문제의 단서가장 최근에 들어온 원소를 알 수 있다.가장 최근에 들어온 원소 순으로 나온다.스택의 ADTpush() 스택의 맨 위에 원소를 추가한다.pop()스택의 맨 위 원소를 제거한다.top()스택의 맨 위 원소를 반환한다.empty()스택이 비어있으면 참을 반환한다.size()스택의 크기를 반환한다.스택의 사용예시함수 호출 관리페이지 탐색괄호 짝 맞추기DFS백 트래킹큐큐란?FIFO 구조 (First In First Out), 혹은 LILO 구조라고 할 수도 있음큐 문제의 단서들어온 순서대로 나갈 때 사용한다.큐의 ADTpush() 큐의 맨 뒤에 원소를 추가한다.pop()큐의 맨 앞 원소를 제거한다.. 2024. 10. 12.
[백준] 30804번 과일 탕후루 - C++ 과일 탕후루 길이가 N인 막대에 N개의 과일을 순서대로 꽂은 탕후루가 있을 때 과일이 2종류만 남을 때까지 맨 앞 또는 맨뒤에서 제거하여 만들 수 있는 탕후루 길이의 최댓값을 구하는 문제입니다.알고리즘// 과일을 최대 두종류만 기억한다.// 새로운 과일이 들어오면 기존 과일꼬치의 길이를 계산하고 가장 앞쪽의 과일뭉치를 제거한다.// 입력이 끝날때 까지 반복한다.int fruit1, start1, end1, fruit2, start2, end2;while(//과일 순서를 입력받는 동안){ if(과일1 또는 과일2가 입력되었을 때) end1 또는 end2의 값을 현재 좌표로 수정 else // 새로운 과일이 들어왔을 때 // 지금까지의 과일 길이를 계산 //.. 2024. 10. 8.
[C++] 입력 버퍼가 비어있는지 확인하고 문자가 남아 있다면 제거하는 방법 코딩을 하다 보면 사용자로부터 입력을 받을 때 입력 버퍼에 문자가 남아있어서 입력이 무시되거나 코드가 원하는 흐름대로 흘러가지 않는 경우가 있습니다. 입력 버퍼에 문자가 남아있다고 확신한다면 다음과 같은 방법을 사용할 수 있습니다.cin.ignore(numeric_limits::max(), '\n');  이 방법은 개행문자가 나올 때까지 버퍼에 있는 입력을 무시하지만 버퍼가 이미 비어있었다면 사용자로부터 받아야 할 입력을 무시해 버리게 됩니다. 그래서 다음과 같이 버퍼에 문자가 남아있는 수만큼 무시하는 방법이 있습니다.cin.ignore(cin.rdbuf()->in_avail()); in_avail()은 버퍼에 남아있는 문자의 수를 반환하는데 문자가 남아있지 않다면 0개의 문자를 무시하므로 이어지는 입력.. 2024. 9. 23.
[코테] 코딩 테스트 사전 준비 들어가며 코딩테스트를 준비하면서 책을 하나 샀습니다. 이정표 없이 사이트에서 문제만 푸는 것은 좀 비 효율적인 것 같아서 저에게 방향을 제시해 줄 것이 필요하다고 생각해서 구매했는데 나쁘지 않은 것 같습니다. 완전 정독까지 파이팅~!코딩 테스트를 준비하기 전에합격자가 꼭 되고 싶은 여러분타인의 풀이를 보면 사고를 넓힐 수 있다.나만의 테스트 케이스를 추가하는 건 좋은 알고리즘을 생각할 때 도움이 된다.아는 것과 모르는 것을 명확하게첫 번째, 기록하라.두 번째, 시험 보듯 공부하라.세 번째, 짧은 시간 공부해서는 절대 코딩 테스트를 통과할 수 없다.네 번째, 나만의 언어로 요약하라.코딩 테스트 효율적으로 준비하기문제 분석 연습하기첫 번째, 문제를 쪼개서 분석하라.두 번째 제약 사항을 파악하고 테스트 케이스.. 2024. 9. 4.
[백준] 4963번 섬의 개수 - C++ 섬의 개수 문제 이름을 클릭하면 문제 설명을 볼 수 있습니다. 이번 문제는 0과 1로 이루어진 지도에서 섬이 총 몇 개 있는지 개수를 맞추는 문제입니다. 8방향으로 한 방향이라도 이어져 있다면 이어진 모든 섬을 한 개로 칩니다. 저는 2차원 배열을 순회하면서 DFS를 이용해서 해결했습니다.코드#include #include int main(){ std::cin.tie(NULL); std::ios::sync_with_stdio(false); std::pair dir[8] = { {-1,-1}, {-1,0}, {-1,1}, {0,-1}, {0,1}, {1,-1}, {1,0}, {1,1} }; while (true) { int w, h; std::cin >> w >> h; if (w == 0 && h .. 2024. 8. 30.
[QT] 애니팡 - 점수 UI 만들기 (완성) 점수 UI 만들기Values.h#pragma once#include #include templateclass ObservableValue{ using Observer = std::function;private: T _value; std::vector _observers;public: const T& get() const { return _value; } void set(const T& value) { _value = value; for (auto& observer : _observers) { observer(_value); } } void observe(Observer observer) { _observers.push_back(observer); observer(_value); }};.. 2024. 8. 28.