목록백준 문제풀이 (13)
나만의 작은 도서관
문제 링크 https://www.acmicpc.net/problem/16920 16920번: 확장 게임 구사과와 친구들이 확장 게임을 하려고 한다. 이 게임은 크기가 N×M인 격자판 위에서 진행되며, 각 칸은 비어있거나 막혀있다. 각 플레이어는 하나 이상의 성을 가지고 있고, 이 성도 격자판 위 www.acmicpc.net 난이도: 골드 2 문제 요약 설명 플레이어들이 N X M인 격자판 위에서 확장게임을 한다. 확장게임이란 각 플레이어가 순서대로 본인의 모든 성들에서 Si번 상하좌우로 이동하여 이동한 칸에 성을 추가로 짓는 게임이다. 확장게임은 모든 플레이어가 더 이상 확장을 할 수 없을 때 게임이 끝난다. 격자판이 주어졌을 때, 확장게임이 끝나고 각 플레이어가 가진 성들의 개수를 출력하는 프로그램을 ..
난이도 : 실버 1 문제 요약 설명 자연수 N이 주어졌을 때, N보다 크거나 같은 소수이면서 팰린드롬인 수 중 가장 작은 수를 출력하는 프로그램을 작성하시오. 펠린드롬이란? - 뒤집은 수와 일치하는 수 예) 121, 34543 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000) 입력 예제 // input 31 // ans 101 Tips 시간 제한이 2초이고 N의 범위가 최대 1,000,000이므로 시간 초과에 어느정도 자유롭다. √N 이하의 수에서 나누어떨어지지 않으면 N은 소수이므로 √N 까지만 약수인지 찾으면 된다. (정답코드에서는 N/2 범위로 찾았지만 통과했다) 정답 코드 #include #include #include using namespace std; bool isFelin..
난이도 : 실버 1 문제 요약 설명 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파벳 대문자로 매겨지며, 항상 A가 루트 노드가 된다. 자식 노드가 없는 경우에는 .으로 표현한다. 입력 예제 // input 7 A B C B D . C E F E . . F . G D . . G . . // ans ABDCEFG DBAECFG DBEGFCA T..

문제 요약 설명 일렬로 세워진 나무들이 있다. 각 나무들은 높이가 제각각이며, 해당 나무들을 높이 H 이상인 부분들만 잘라 길이 M 이상의 나무를 얻으려고 한다. M 이상의 나무를 얻을 수 있는 H의 최대값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 나무의 수 N과 얻고자 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보다 크거나 같기 때문에, 필요한 나무를 항상 가져갈 수 있다. 높이는 1,000,000,000보다 작거나 같은 양의 정수 또는 0이다. 입력 예제 4 7 20 15 10 17 Tips 나무의 수가 최대 100만개나 되고, 가능한 나무의 높이가 매우 높기 때..
문제설명 N개의 수로 된 수열 A가 있다. 이 수열의 i번째 부터 j번째 까지의 수를 더했을 때 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N, M이 차례로 주어진다. (단, N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)) 둘째 줄에는 N개의 수가 차례로 주어진다. 주어지는 수는 30000이하의 자연수이다. 입력 예제 4 2 1 1 1 1 Tips 구하고자 하는 수들의 합은 연속적인 수들의 합이다. 주어진 수열 A에 있는 모든 수들을 조합하여 M이 되는 경우를 구하는 게 아니다. 수열의 수들이 자연수이기 때문에 부분 수열에 수를 추가하면 항상 값이 증가한다. 따라서, i 번째로 시작하는 부분 수열에서 수의 합이 M이라면 그 뒤로 수를 추가해도 수의 ..
문제설명 시험을 치루는 응시자들이 각 시험장에 있다. 응시자를 감시하기 위해 총감독관과 부감독관은 시험장에 배치되어야 한다. 이 때, 총감독관은 각 시험장에 항상 1명이 있어야 하며, 부감독관은 여럿이 있어도, 없어도 된다. 총감독관은 B명을 감시할 수 있고, 부감독관은 C명을 감시할 수 있다. 모든 응시자들을 감시하는데 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) 입력 예제 3 3 4 5 2 2 Tips 1. 본감독관은 항상 시험장에 한 ..