전체 글(724)
-
[백준/BOJ] 백준 17383번 : 옥토끼는 통신교육을 풀어라!!
https://www.acmicpc.net/problem/17383 17383번: 옥토끼는 통신교육을 풀어라!! 옥토끼가 이런 식으로 문제를 풀면 tncks0121은 옥토끼가 5, 10, 15, 20, 25, 30, 34분에 문제를 풀었으므로 최대 5분동안 휴식을 한 것으로 간주한다. www.acmicpc.net 이분 탐색을 이용하여 해당 시간(check)으로 문제를 해결하는 간격을 만들 수 있는지 확인하여 문제를 해결했다. 문제를 끝내는 시간을 check, check*2, check*3... 시간에 맞추는 것으로 확인했다. check시간 이하에 풀 수 있는 문제를 하나의 블록으로 생각하여, 블록 두 줄(한 번에 동시에 두 개의 문제를 풀 수 있으므로)의 차이가 블록 한 개 이하로 되도록 블록을 쌓아가는..
2022.02.06 -
[백준/BOJ] 백준 2843번 : 마블
https://www.acmicpc.net/problem/2843 2843번: 마블 1로 시작하는 쿼리가 주어질때 마다, 조약돌이 멈추는 정점의 번호를 한 줄에 하나씩 출력한다. 만약, 어떤 정점에 멈추지 않고 무한히 이동한다면, CIKLUS를 출력한다. www.acmicpc.net 쿼리의 순서를 거꾸로 처리하기 위해 쿼리를 미리 저장해 놓는 오프라인 쿼리를 이용해 문제를 해결했다. 쿼리를 거꾸로 처리하면 간선을 지우는 쿼리에 의해 지워질 간선은 미리 지워놓고, 간선을 지우는 쿼리에서 해당 간선을 연결하는 방식으로 문제를 해결할 수 있기 때문이다. 간선의 연결은 유니온 파인드를 이용했고, 이를 통해 해당 그룹의 사이클은 판단했다 코드 #include #include #include #include usi..
2022.02.06 -
[백준/BOJ] 백준 1866번 : 택배
https://www.acmicpc.net/problem/1866 1866번: 택배 첫째 줄에 배송해야 할 물품의 개수 N이 주어진다. (1 ≤ N ≤ 3,000) 둘째 줄에는 각 물품의 목적 지점의 번호가 빈 칸을 사이에 두고 주어진다. 지점의 번호는 10,000 이하의 자연수이다. 셋째 줄에 www.acmicpc.net 순서대로 해당 번째 물건까지 배송했을 때 최소 비용을 cache[해당 번째]에 저장하여 문제를 해결했다. 해당 번째 물건마다 해당 물건을 트럭으로 옮기는 경우와, 해당 물건(i번째)과 해당 물건 이하(i이하)의 구간(i이하(j) ~ i)의 경우에서 해당 구간의 물건들을 (j+i)/2번째에 헬리콥터로 옮기고 트럭으로 분배하는 경우를 고려하여 문제를 해결했다. 헬리콥터로 옮기고 트럭으로 ..
2022.02.06 -
[백준/BOJ] 백준 1747번 : 소수&팰린드롬
https://www.acmicpc.net/problem/1747 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 에라토스테네스의 체를 이용해 소수를 체크하고, 입력받은 n부터 숫자 확인해가며 팰린드롬이면서 소수인 수를 찾아서 문제를 해결했다 코드 #include #include #include #include using namespace std; int n; int prime_check[2000001]; //에라토스테네스의 체를 이용해 소수인것을 1로 체크 void Ma..
2022.02.05 -
[백준/BOJ] 백준 15831번 : 준표의 조약돌
https://www.acmicpc.net/problem/15831 15831번: 준표의 조약돌 첫 줄에 조약돌의 총 개수 N, 준표가 원하는 검은 조약돌의 최대개수 B와 하얀 조약돌의 최소개수 W가 주어진다. 둘째 줄에는 N개의 조약돌의 정보가 한 줄로 주어진다. i번째 문자가 B라면 i번 조 www.acmicpc.net 투 포인터를 이용하여 두 개의 돌의 조건을 확인해서 문제를 해결했다 코드 #include #include #include #include using namespace std; int n, b, w; string stone; int main() { cin.tie(NULL); ios_base::sync_with_stdio(false); cin >> n >> b >> w; cin >> st..
2022.02.05 -
[백준/BOJ] 백준 1800번 : 인터넷 설치
https://www.acmicpc.net/problem/1800 1800번: 인터넷 설치 첫 번째 줄에 N(1 ≤ N ≤ 1,000), 케이블선의 개수 P(1 ≤ P ≤ 10,000), 공짜로 제공하는 케이블선의 개수 K(0 ≤ K < N)이 주어진다. 다음 P개의 줄에는 케이블이 연결하는 두 컴퓨터 번호와 그 가격이 차 www.acmicpc.net 이분 탐색을 이용해서 해당 비용으로 1번부터 N번까지 연결이 가능한지 확인하여 최소 비용을 찾았다. 해당 비용으로 1번부터 N번까지 연결이 가능한지 확인하는 방법은 해당 간선의 가격이 현재 확인하는 비용보다 큰 연결일 때 간선을 카운트하고, 현재 확인하는 비용보다 작은 연결일 때는 간선을 카운트하지 않는 방법으로, N번까지 가는 길중 가장 최소 간선 카운트..
2022.02.05