본문 바로가기
반응형

Programming Solve/BOJ60

BOJ 2805 - 나무 자르기 / C++ 문제 링크 : https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 문제 풀이 나무들의 높이가 주어지고 절단기의 길이가 x일 때 (trees[i] - x)만큼 집에 나무를 가져갈 수 있다. 적어도 m미터의 나무를 가져가기 위한 절단기의 최대 길이를 구하면 된다. 이를 구하기 위해 이분 탐색을 이용한다. 일반적인 이분 탐색은 원소 값들을 탐색하지만 해당 문제에서는 원소 값들을 탐색해서는 답을 찾을 수 없다. 따라.. 2022. 3. 4.
BOJ 2579 - 계단 오르기 / C++ 문제 링크 : https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 풀이 DP를 이용하여 푼다. 우선 1번 계단과 2번 계단의 최댓값은 모든 계단을 밟으면 되므로 그대로 초기화해준다. 3번 계단부터는 경우가 여러 개로 나뉘어진다. (1). 1번 계단 -> 3번 계단 (2). 2번 계단 -> 3번 계단 (1)번 경우에는 DP[1] + arr[3]이 될 것이고 (2)번 경우에는 arr[2] + arr[3]이 될 것이다. DP[2]에는 arr[1] + arr[2.. 2022. 2. 28.
BOJ 11723 - 집합 / C++ 문제 링크 : https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 문제 풀이 실제 set을 쓰면 시간 초과가 나기 때문에 모든 함수를 구현해준다. 배열을 사용하며 입출력 시간도 ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); 를 통해 빠르게 만들어주어야 통과할 수 있다. 소스 코드 구현 풀이 #include #include using namespace std; int arr[21] = { 0, }; voi.. 2022. 2. 27.
BOJ 1100 - 하얀 칸 / C++ 문제 링크 : https://www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 문제 풀이 조건대로 구현하면 되는 문제이다. 체스판을 W(white), B(black)으로 미리 표시해두고 흰색이며 말이 존재하면 정답 카운트를 증가시켜준다. 소스 코드 #include #include using namespace std; int cnt = 0; char map[8][8] = { 'W', 'B', 'W', 'B', 'W', 'B', 'W', 'B', 'B', 'W'.. 2022. 2. 27.
반응형