본문 바로가기

백준

(48)
[백준/c++] BOJ 20310 - 타노스 https://www.acmicpc.net/problem/20310 20310번: 타노스 어느 날, 타노스는 0과 1로 이루어진 문자열 $S$를 보았다. 신기하게도, $S$가 포함하는 0의 개수와 $S$가 포함하는 1의 개수는 모두 짝수라고 한다. 갑자기 심술이 난 타노스는 $S$를 구성하는 문자 www.acmicpc.net 문제 설명 0과 1로 이루어진 문자열 S가 있는데, S가 포함하는 0의 개수와 1의 개수는 각각 짝수이다. S를 구성하는 문자 중 절반의 0과 절반의 1을 제거하여 새로운 문자열 S'를 만들 때, 만들 수 있는 문자열 중 사전 순으로 가장 빠른 S'를 구해야 한다. (2 str; int len = strlen(str); for (int i = 0; i < len; i++) { if ..
[백준/c++] BOJ 12886 - 돌 그룹 https://www.acmicpc.net/problem/12886 12886번: 돌 그룹 오늘 강호는 돌을 이용해 재미있는 게임을 하려고 한다. 먼저, 돌은 세 개의 그룹으로 나누어져 있으며 각각의 그룹에는 돌이 A, B, C개가 있다. 강호는 모든 그룹에 있는 돌의 개수를 같게 만들려 www.acmicpc.net 문제 설명 돌들이 세개의 그룹으로 나누어져 있고, 각각의 그룹에는 돌이 A, B, C개 있다. 세 개의 그룹들 중, 크기가 같지 않은 두 그룹을 골라 작은 쪽은 X, 큰 쪽을 Y라고 정한다. X에 있는 돌의 개수를 X+X개로, Y에 있는 돌의 개수를 Y-X개로 만든다. 같은 행동을 반복하여 세 그룹의 돌의 개수를 모두 같게 만들 수 있다면 1, 아니면 0을 출력한다. A, B, C (1 a ..
[백준/c++] BOJ 1946 - 신입사원 https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 설명 주식회사의 지원자는 서류 심사와 면접 시험을 본다. 서류 심사의 순위와 면접 시험의 순위가 주어질 때, 어떤 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다. 즉, 두 심사의 순위가 지원자보다 더 높은 사람이 있을 경우, 해당 지원자는 탈락한다. 각 테스트 케이스에 대해서 주식회사가 선발할 수 있는 신입사원의 최대 인원수를 한 줄에 하나씩 출력한다. 첫째 줄에 ..
[백준/c++] BOJ 14889 - 스타트와 링크 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 설명 N명의 사람을 N/2명씩 나누어 두 팀을 구성한다. 능력치 표가 주어지며, Sij는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 두 팀의 능력치의 차이의 최솟값을 출력해라. N(4 > arr[i][j]; } solve(0, 0); cout
[백준/c++] BOJ 13305 - 주유소 https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 문제 설명 N개의 도시가 있다. 각 도시에는 주유소가 있으며, 리터 당 가격은 다를 수 있다. 인접한 도시 사이의 도로들은 길이가 서로 다를 수 있으며 단위는 km이다. 1km 당 1리터의 기름을 사용한다. 제일 왼쪽에서 제일 오른쪽 도시로 이동할 때, 충전해야 하는 기름의 최소 비용을 구하라. 입력은 다음과 같은 순서로 들어온다. 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 10..
[백준/c++] BOJ 1439 - 뒤집기 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 문제 설명 0과 1로만 이루어진 문자열 S를 입력받는다. 문자열을 뒤집으면 0은 1로, 1은 0으로 바뀐다. 연속된 숫자를 잡고 뒤집어 문자열의 모든 숫자를 같게 만들어야 한다. 입력된 문자열의 모든 숫자를 같게 하기 위해 뒤집는 최소 횟수를 구하라. S의 길이는 100보다 작다. 해결 입력받는 문자열의 모든 숫자를 0 또는 1로 통일시켜야 한다. 뒤집을 때는 연속된 숫자의 집단을 한번에 뒤집는다..
[백준/c++] BOJ 25947 - 선물 할인 https://www.acmicpc.net/problem/25947 25947번: 선물할인 입력은 표준입력을 사용한다. 첫 번째 줄에 선물의 개수를 나타내는 양의 정수 $n$ ($1 ≤ n ≤ 100\,000$), 예산을 나타내는 양의 정수 $b$ ($1 ≤ b ≤ 10^9$), 반값 할인을 받을 수 있는 최대 선물의 수를 www.acmicpc.net 문제 설명 n개의 선물 가격이 주어지고, b의 예산으로 최대한 많은 선물을 산다. 이때 최대 a개의 선물은 단 한번만 반값 할인을 받을 수 있다. 최대로 살 수 있는 선물의 수를 구하라. (1 b >> a; for (int i = 0; i > arr[i]; sort(arr, arr + n); for (int i = 0; i < n..
[백준/c++] BOJ 2839 - 설탕 배달 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 설명 상근이는 정확하게 N 킬로그램의 설탕을 배달해야 한다. 설탕은 3킬로그램, 5킬로그램 봉지에 담겨 있으며 정확히 N킬로그램을 배달해야 한다. 최대한 적은 봉지를 가져갈 때, 봉지의 개수를 구해야 한다. (3 n; if (!(n % 5)) { cout = 0) { n -= 5; five++; } while (1) { n -= 3; three++; for (int i = five; i > 0; i--..