전체 글(724)
-
[백준/BOJ] 백준 8982번 : 수족관 1
https://www.acmicpc.net/problem/8982 8982번: 수족관 1 입력의 첫 줄은 수족관의 경계에 있는 꼭짓점의 개수 N(1 ≤ N ≤ 5,000)이 주어진다. N은 짝수이다. 수족관의 경계는 항상 꼭짓점 (0, 0)부터 시작한다. 그리고 마지막 꼭짓점은 (A, 0)의 형태로 끝난 www.acmicpc.net depth에 [열] = 해당 열의 깊이를 저장해 놓고, water에 [열] = 물의 양을 저장한뒤 문제를 해결했다. 그리고 구멍이 난 위치에서 왼쪽으로 확인하고 오른쪽으로 확인해서 문제를 해결했다. 코드 #include #include #include #include using namespace std; int n; vector depth(40001, 0); //[열] = 해..
2021.09.02 -
[백준/BOJ] 백준 2461번 : 대표 선수
https://www.acmicpc.net/problem/2461 2461번: 대표 선수 입력의 첫 번째 줄에는 학급의 수를 나타내는 N과 각 학급의 학생의 수를 나타내는 M이 하나의 빈칸을 사이에 두고 주어진다. 단, 1 ≤ N, M ≤ 1,000이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 www.acmicpc.net vector people에 (학생의 능력치, 속한 반)를 저장 후 정렬 뒤 투 포인터를 이용하여 문제를 해결했다. map check에 [반] = 구간에서 반에 속한 학생의 수를 저장하여 check.size()가 n과 같은지를 확인해서 범위 안에 각 반의 학생이 한명이상 있는지를 체크했다. 코드 #include #include #include #include #include usin..
2021.09.02 -
[백준/BOJ] 백준 1765번 : 닭싸움 팀 정하기
https://www.acmicpc.net/problem/1765 1765번: 닭싸움 팀 정하기 1번 학생 혼자 팀, 2, 4, 6번 학생 셋이서 팀, 3, 5번 학생 둘이서 팀일 때, 팀의 개수가 최대이다. www.acmicpc.net vector enemy[1001]에 해당 학생의 원수들을 저장하고, 1번 학생부터 n번 학생까지 확인하며 해당 학생의 원수를 찾고 그 원수의 원수를 찾아서 해당 학생과 유니온 하고, 친구관계를 유니온 하는 방법으로 유니온 파인드를 진행했다. 코드 #include #include #include #include #include using namespace std; int n; int m; vector parent(1001); vector rank_size(1001, 1);..
2021.09.01 -
[백준/BOJ] 백준 1572번 : 중앙값
https://www.acmicpc.net/problem/1572 1572번: 중앙값 중앙값이란, 수열을 정렬했고, 그 크기가 N일 때, 1부터 시작해서 (N+1)/2번째 있는 원소가 그 수열의 중앙값이다. 예를 들어, {1, 2, 6, 5, 4, 3}에서는 3이고, {11, 13, 12, 15, 14}에서는 13이다. 오세준은 1 www.acmicpc.net [해당 숫자] = 나온 횟수를 통해 해당 숫자가 나온 횟수를 저장하고 이것을 합 세그먼트 트리로 만들어서 이분 탐색을 통해 중앙값을 찾는 방법으로 문제를 해결했다. 코드 #include #include #include #include #include using namespace std; int n; int k; long long result = 0..
2021.09.01 -
[백준/BOJ] 백준 1300번 : K번째 수
https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 이분 탐색으로 문제를 해결했다. 각 행마다 확인하는 수 보다 작은 수가 몇 개 있는지 개수를 구해서 이분 탐색을 진행했다. 코드 #include #include #include #include using namespace std; int n; int k; int main() { cin.tie(NULL); ios_base::sync_with_stdio(false); c..
2021.09.01 -
[백준/BOJ] 백준 3217번 : malloc
https://www.acmicpc.net/problem/3217 3217번: malloc 첫째 줄에 명령의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개의 줄에는 명령이 수행된 순서대로 하나씩 주어진다. print는 한 번 이상 주어진다. www.acmicpc.net list li에 (할당할 수 있는 위치, 해당 위치에서 할당 가능한 공간)를 리스트로 저장하였고, map check에 (변수, (할당된 위치, 할당된 공간))을 저장하였다. 공간을 찾아 할당할 때는 리스트를 돌면서 해당 사이즈만큼 공간 할당이 가능한 곳을 찾았을 때 할당하였고, 할당을 해제할 때는 리스트를 돌면서 할당된 공간이 들어갈 위치를 찾아서 할당하였으며, 할당한 위치의 앞쪽과 뒤쪽을 확인하여 공간이 합쳐지는 것도 ..
2021.09.01