본문 바로가기

백준64

[백준/BOJ][C++] 11866번 요세푸스 문제0 #include #include using namespace std; int main() { // 쓰레드 환경이 아닐때 버퍼를 분리하여 처리속도를 빠르게 해줌 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N, K; cin >> N >> K; queue circle; // 순서대로 사람을 앉힘 for (int i = 1; i 2023. 8. 24.
[백준/BOJ][C++] 2164번 카드2 #include #include using namespace std; void Shuffle(queue& q) { q.pop(); // 맨 위의 카드를 버림 q.push(q.front()); // 그 다음 맨 위의 카드를 밑으로 옮김 q.pop(); // 옮긴 카드를 버림 } int main() { // 쓰레드 환경이 아닐때 버퍼를 분리하여 처리속도를 빠르게 해줌 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; queue q; // 1부터 N까지 수를 큐에 담음 for (int i = 1; i 2023. 8. 24.
[백준/BOJ][C++] 18258번 큐 2 #include #include using namespace std; struct Queue { private: int* elements; int frontIndex; int backIndex; public: Queue(int n) { elements = new int[n]; frontIndex = 0; backIndex = -1; } ~Queue() {} void push(int x) { elements[++backIndex] = x; } int pop() { if (empty()) return -1; else { return elements[frontIndex++]; } } int size() { return backIndex - frontIndex + 1; } bool empty() { if (fr.. 2023. 8. 24.
[백준/BOJ][C++] 12789번 도키도키 간식드리미 #include #include #include using namespace std; int main() { // 쓰레드 환경이 아닐때 버퍼를 분리하여 처리속도를 빠르게 해줌 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; queue curLine; // 현재 줄 stack otherLine; // 또 다른 줄 for (int i = 0; i > x; curLine.push(x); } int checkNum = 1; while (true) { if (!curLine.empty() && curLine.front() == checkNum) { // 현재 줄에 순서에 맞.. 2023. 8. 23.
[백준/BOJ][C++] 4949번 균형잡힌 세상 #include #include #include #include using namespace std; int main() { // 쓰레드 환경이 아닐때 버퍼를 분리하여 처리속도를 빠르게 해줌 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); vector output; while(true) { string s; getline(cin, s); // 공백 포함 문자열 입력 if (s == ".") break; stack stk; bool isBalanced = true; // 균형유무 for (int j = 0; j < s.size(); j++) { char curWord = s[j]; if (curWord == '(' || curWord ==.. 2023. 8. 21.
[백준/BOJ][C++] 9012번 괄호 #include #include #include #include using namespace std; int main() { // 쓰레드 환경이 아닐때 버퍼를 분리하여 처리속도를 빠르게 해줌 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int T; cin >> T; vector output; for (int i = 0; i > s; stack stk; bool isVPS = true; for (int j = 0; j < s.size(); j++) { char curWord = s[j]; if (curWord == '(') { // '('인 경우 스택에 넣어줌 stk.push(curWor.. 2023. 8. 21.
[백준/BOJ][C++] 10773번 제로 #include #include using namespace std; int main() { // 쓰레드 환경이 아닐때 버퍼를 분리하여 처리속도를 빠르게 해줌 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int K; cin >> K; stack stk; int sum = 0; for (int i = 0; i > x; if (x == 0) { sum -= stk.top(); stk.pop(); } else { stk.push(x); sum += x; } } cout 2023. 8. 21.
[백준/BOJ][C++] 28278번 스택 2 #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; struct Stack { private: int Top; int* elements; public: Stack(int N) { elements = new int[N]; Top = -1; } ~Stack() {}; void push(int n) // 1 { elements[++Top] = n; } int pop() // 2 { if (!isEmpty()) { return elements[Top--]; } else { return -1; } } int Length() // 3 { .. 2023. 8. 19.
[백준/BOJ][C++] 9095번 1, 2, 3 더하기 #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int Combine(int n, int k) { // 조합을 계산 int x = 1; // 분자 int y = 1; // 분모 for (int i = 1; i > T; vector output(T); for (int p = 0; p > n; int count = 0; // 1. 1로만 표현 -> 1가지 count++; // 2. 2로만 표현 -> n/2 가지 방법 for (int i = 1; i 2의 갯수 i개, 1의 갯수 k개 ->.. 2023. 8. 14.
[백준/BOJ][C++] 13909번 창문 닫기 #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { // 쓰레드 환경이 아닐때 버퍼를 분리하여 처리속도를 빠르게 해줌 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; int count = 0; // 약수의 갯수 -> 짝수 : 0, 홀수 : 1 // 제곱수의 약수의 갯수 -> 홀수 -> 제곱수의 갯수 = 열린 창문의 갯수 for (int i = 1; i 2023. 8. 12.
[백준/BOJ][C++] 17103번 골드바흐 파티션 #include #include #include #include #include #include #include #include #include #include #include using namespace std; void FindPrimeNumber(int maxVal, vector& primeNumbersCheck) { // 에라토스테네스의 체 공식 // -> 각 소수들의 배수를 지워나가며 찾는 방식 for (int i = 2; i T; vector primeNumbersCheck(2); // 0과 1은 false로 초기화 vector input; int maxVal = 0; for (int i = 0; i > N; maxVal = max(maxVal, N).. 2023. 8. 12.
[백준 4948번][C++] 베르트랑 공준 #include #include #include #include #include #include #include #include #include #include #include using namespace std; enum State { Null, NotPrime, Prime }; bool PrimeNumberCheck(int n, map& primeNumbers) { if (primeNumbers[n] == Null) { // n값에 처음 접근한 경우 for (int i = 2; i 소수가 아님 if (n % i == 0) { primeNumbers[n] = NotPrime; return false; } } // 어떤 수로도 나누어 떨어지지 않는 경우 -> 소수임 primeNumbers[n] = Pri.. 2023. 8. 10.