전체 글

개발 공부 일지 작성 블로그
C++/백준 문제풀이

[N번째 큰 수 - 백준] / priority_queue , 자료구

Problem https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net Solve - 원소 입력 시 자동으로 정렬되는 priority_queue 사용 - priority_queue pq; // 내림차순 정렬되는 pq 선언 - 입력되는 숫자를 삽입 - 조건은 pq의 size가 N보다 작으면 무조건 삽입 - N보다 크면 삽입 후 pq.pop() (가장 작은 수 pop) - 마지막에는 pq의 size가 N이됨 , 즉 pq.top()이 N번째 큰 수 #include ..

C++/백준 문제풀이

[줄 세우기 - 백준] / vector, iterator(반복자)

Problem https://www.acmicpc.net/problem/2605 2605번: 줄 세우기 점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을 www.acmicpc.net Solve - 제비뽑기를 통해 줄세우는 문제 - 첫번째 학생부터 뽑기 결과가 주어지면 적절한 위치에 멤버를 삽입하면 됨 > vector line; //선언 > line.insert(prev(line.end(),num),i); // 벡터의 end()에서 투표 결과만큼 앞으로 반복자를 이동한 후 해당 위치에 학생 숫자 i 를 삽입 #include #include using namespace..

C++/백준 문제풀이

[막대기 - 백준] / stack, 자료구

Problem https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net Solve - stack 컨테이너를 이용 - stack이 비었거나 stack.top() 가 추가하려는 막대기보다 크면 그대로 push - stack.top()이 추가하려는 막대기보다 작거나 같으면 pop 한 뒤 다시 확인 ==> 결과적으로 stack에는 우측에서 바라봤을 때 보이는 막대기만 남음 #include #include using namespace std; class sol { i..

카테고리 없음

[최솟값과 최댓값-백준] / 세그먼트 트리 응용

Problem https://www.acmicpc.net/problem/2357 2357번: 최솟값과 최댓값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100 www.acmicpc.net Solve 세그먼트 트리 - 이진트리 구조 / 각 노드는 특정 구간에 대한 합, 최솟값, 최댓값 등을 가질 수 있다. ios:sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 이거 추가해야 시간초과 안뜹니다. 이것 때문인줄 모르고 이런저런 방식들로 구현함 #include #include #inclu..

카테고리 없음

[전화번호 목록 - 백준] / string, sort, vector

Problem https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net Solve #include #include #include #include using namespace std; class sol { vector v; int cnt; bool check_exist(const string& a, const string& b) { string st = b.substr(0, a.length()); if (st == a) { ret..

C++/백준 문제풀이

[후위 표기식2 - 백준] / Stack, queue

Problem https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net Solve #include #include #include using namespace std; class sol { int N; string str; int number[30]; double answer; stack q; queue s; public: sol(const int& cnt, const string& s) { N = cnt; str = s; } void inp..

공부하는 신입사원
프로그래밍 공부