전체 글 109

(매일 BOJ) C++ 1010번 다리 놓기

이번 문제는 실버 5 난이도의 다리 놓기 문제이다.접근법이 문제는 강 동쪽에 있는 사이트가 A, 강 서쪽에 있는 사이트가 B 라고 가정한 조합 문제로 볼 수 있다.따라서 이 조합을 코드로 구현하면 쉽게 해결할 수 있을 것이다. 1차 코드# include using namespace std;int main(void){ ios::sync_with_stdio(0); cin.tie(0); int N; cin >> N; for (int i = 0; i > b >> a; int combination = 1; for (int j = b+1; j 최종 코드조합 코드를 단축시킬 수 있었던 방법이 있었다. combination *= (a - j + 1);combination ..

매일 BOJ 2025.07.16

(매일 BOJ) C++ 1929번 소수 구하기

이번 문제는 실버 3 난이도의 1929번 소수 구하기 문제이다.1차 접근법이 문제를 처음 봤을 때에는 브루트포스를 사용하여 소수를 구하는 방식으로 접근하였다.bool isPrime(int n) { if (n 따라서 이 함수를 만들어 소수인지 아닌지를 하나하나 판단한 후 출력하는 방식으로 구현하였지만, TLE가 발생하는 것을 볼 수 있었다. 각 숫자마다 O(√N)의 검사할 때, N = 1,000,000일 경우 약 O(N√N) = 10^6 * 10^3 = 10^9 = 1,000,000,000 이 되기에 TLE 발생!2차 접근법 - 에라토스테네스의 체핵심 아이디어2부터 시작하여 배수들을 지워나가는 방식지워지지 않고 남아있는 수 = 소수작동 방식2부터 √N까지 모든 수 i에 대해i*i, i*i+i, i*..

매일 BOJ 2025.07.16

(매일 BOJ) C++ 1874번 스택 수열

이번 문제는 실버 2 난이도의 1874번 스택 수열이다.문제 요약1부터 N까지 오름차순으로 스택에 숫자를 넣고(push), 뽑아내(pop)면서 원하는 수열을 만들어야 함만들 수 있는 수열이면 +, - 연산을 출력하고, 불가능하면 NO 출력접근법입력 수열을 왼쪽부터 차례로 만들어야 함ex) 입력: 4 3 6 8 7 5 2 1스택에는 오름차순 숫자만 넣을 수 있음 >> 백터로 입력 수열을 받는다."현재 스택의 top"이 목표 수열의 숫자와 일치할 때 pop아직 목표 숫자가 스택에 없으면 → 숫자를 push하면서 채움스택 top이 입력 숫자와 같으면 → pop더 큰 수가 필요하면 계속 push (1부터 N까지 오름차순이기 때문)더 작은 수인데 이미 pop된 숫자라면? → NO 출력아래는 작성한 코드이다.# i..

매일 BOJ 2025.07.16

(매일 BOJ) C++ 2108번 통계학

이번 문제는 실버 2 난이도의 통계학 문제이다.접근법특별할게 딱히 없는 그냥 귀찮은 구현 문제라 하나하나 단계별로 함수로 구현하는 방식으로 접근하면 쉽게 해결할 수 있을 것 같다. 아래는 작성한 코드이다.# include using namespace std;int avr (const vector& v);int center (const vector& v);int mode (const vector& v);int boundery (const vector& v);int main (void){ ios::sync_with_stdio(0); cin.tie(0); int N; cin >> N; vector v; for (int i = 0; i > num; v.push_back(n..

매일 BOJ 2025.07.16

(매일 BOJ) C++ 1966번 프린터 큐

이번 문제는 실버 3 난이도의 프린터 큐 문제이다.접근법문서가 몇번째로 인쇄되는지를 알기 위해서 queue에 index과 value 를 동시에 수용한 후 내림차순으로 정렬해주는 priority_queue 를 사용하여 value가 priority_queue의 값과 같으면 pq를 pop() 하고 아니라면 index과 value를 queue에 push 하는 방식으로 구현하였다. 새롭게 배운 내용 - priority_queue 우선순위를 기준으로 가장 중요한 값이 먼저 나오는 자료구조일반 큐는 먼저 들어온 게 먼저 나감 (FIFO).우선순위 큐는 가장 우선순위 높은 값이 먼저 나감 (값 기준 정렬됨).내부적으로 힙(heap) 자료구조로 구현돼 있음 (기본: max heap)예시코드#include priority..

매일 BOJ 2025.07.15

(매일 BOJ) C++ 4949번 균형잡힌 세상

이번 문제는 실버 4 난이도의 4949번 균형잡힌 세상 문제이다.1차 코드처음에는 string 으로 전체 문장을 받은 후 괄호만 추출한 새로운 string을 만들고 여기서 () [] 을 지워나가는 방식으로 코드를 작성하였다.문제점🔸 괄호의 순서 & 중첩예를 들어 입력이 아래와 같을 때: [(])문자열 "[(])"에서 "[]"를 먼저 지우고 → "()"도 지우면 "[(])" → "()"→ 결국 stk.size() == 0이 되어서 "yes"를 출력❗ 하지만 실제로는 괄호가 잘못 닫힌 구조이므로 "no"가 되어야 한다.따라서 이러한 중첩 문제를 해결하기 위해 stack 을 사용하여 다시 코드를 작성하였다.# include using namespace std;int main (void){ ios::sy..

매일 BOJ 2025.07.14