목록분류 전체보기 (591)
어흥
문제 링크: https://www.acmicpc.net/problem/17305 17305번: 사탕 배달 사탕을 좋아하는 아기 석환은, 집에 N개의 사탕이 들어있는 자루를 들여놓았다. 자루에는 두 가지 종류의 사탕이 있는데, 작은 사탕은 3g의 무게를 가지고, 큰 사탕은 5g의 무게를 가진다. 똑똑한 아기 석환은 자루에 있는 모든 사탕에 대해서, 그 사탕의 당도 si 를 계산해 놓았다. si 는 양의 정수로, si 가 클수록 사탕은 달콤하다. shake! 2019 대회에 참가하기 위해 짐을 싸고 있는 아기 석환은, 달콤한 사탕을 최대한 많이 담아가서 대회 도 www.acmicpc.net 1. 주의할 점 - 최대 25만개의 데이터로 인해 Knapsack 알고리즘은 불가능하다 - 가중치/ 무게의 비율 즉, ..
문제 링크: https://www.acmicpc.net/problem/10422 10422번: 괄호 ‘(‘, ‘)’ 문자로만 이루어진 문자열을 괄호 문자열이라 한다. 올바른 괄호 문자열이란 다음과 같이 정의된다. ()는 올바른 괄호 문자열이다. S가 올바른 괄호 문자열이라면, (S)도 올바른 괄호 문자열이다. S와 T가 올바른 괄호 문자열이라면, 두 문자열을 이어 붙인 ST도 올바른 괄호 문자열이다. (()())()은 올바른 괄호 문자열이지만 (()은 올바른 괄호 문자열이 아니다. 괄호 문자열이 주어졌을 때 올바른 괄호 문자열인지 확인하는 방법은 여러 www.acmicpc.net 1. 주의할 점 - 카탈란 수에 대해 알고 있어야 한다 - 입력받는 수가 홀수인 경우 0을 출력하고, 짝수인 경우 반으로 나눈..
문제 링크: https://www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 1. 주의할 점 - 2차 배열을 통해 기존의 값을 메모하고 있어야한다(메모아이제이션 기법) 2. 구현 - 1개의 정수를 통해 원하는 정수를 나타내는 경우는 모두 1로 처리해준다 - N개의 정수를 통해 원하는 정수(Tot)를 만드는 경우의 수는 N-1개의 정수 + 1개의 정수 = Tot와 같이 만든다고 생각한다. 단, 1개의 정수는 0~Tot - (N-1개 정수의 합)까지 가능하다 #include using namespace std; long long arr[201][201];//(앞의 번호)개를 사용하여 (뒤의..
문제 링크: https://www.acmicpc.net/problem/14225 14225번: 부분수열의 합 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 수 있다. 하지만, 4는 만들 수 없기 때문에 정답은 4이다. www.acmicpc.net 1. 주의할 점 - 부분수열의 합으로 만들어 지는 수에 대해 중복 처리가 필요하다(따로 값을 저장할 시) 2. 구현 - Set을 이용해 부분수열의 합을 저장한다 - Cal() 함수의 경우 부분수열로 만들 수 있는 모든 수를 Set에 저장한다 - Set의 N..
문제 링크: https://www.acmicpc.net/problem/1826 1826번: 연료 채우기 첫째 줄에 주유소의 개수 N(1 ≤ N ≤ 10,000)가 주어지고 두 번째 줄부터 N+1번째 줄 까지 주유소의 정보가 주어진다. 주유소의 정보는 두개의 정수 a,b로 이루어 져 있는데 a(1 ≤ a ≤ 1,000,000)는 성경이의 시작 위치에서 주유소 까지의 거리, 그리고 b(1 ≤ b ≤ 100)는 그 주유소에서 채울 수 있는 연료의 양을 의미한다. 그리고 N+2번째 줄에는 두 정수 L과 P가 주어지는데 L(1 ≤ L ≤ 1,000,000)은 성경이 www.acmicpc.net 1. 주의할 점 - 입력 받는 주유소의 정보가 거리순이 아니다 2. 구현 - 주유소의 정보를 우선순위 큐 PQ2에 입력받..
문제 링크: https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 www.acmicpc.net 1. 주의할 점 - 총 합(Result)이 Int범위를 벗어날 수도 있으므로 Long Long으로 설정한다 2. 구현 -..
문제 링크: https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓여 있지 않으며 치즈에는 하나 이상의 구멍이 있을 수 있다. 이 치즈를 공기 중에 놓으면 녹게 되는데 공기와 접촉된 칸은 한 시간이 지나면 녹아 없어진다. 치즈의 구멍 속에는 공기가 없지만 구멍을 둘러싼 치즈가 녹아서 구멍이 열리면 구멍 속으로 공기가 들어가 www.acmicpc.net 1. 주의할 점 - 종료가 될 경우, 직전상태의 치즈 개수를 알고 있어야 한다 - 치즈 내부의 구멍은 외부와 연결되지 않는 한, 공기가 통하지 않는다..
문제 링크: https://www.acmicpc.net/problem/8972 8972번: 미친 아두이노 문제 요즘 종수는 아두이노를 이용해 "Robots"이라는 게임을 만들었다. 종수는 아두이노 한대를 조정하며, 미친 아두이노를 피해다녀야 한다. 미친 아두이노는 종수의 아두이노를 향해 점점 다가온다. 하지만, 미친 아두이노의 움직임은 예측할 수 있다. 게임은 R×C크기의 보드 위에서 이루어지며, 아래와 같은 5가지 과정이 반복된다. 먼저, 종수가 아두이노를 8가지 방향(수직,수평,대각선)으로 이동시키거나, 그 위치에 그대로 놔둔다. 종수의 아두이노가 미친 www.acmicpc.net 1. 주의할 점 - 이동 방향의 종류가 9가지다 - 이동 방향으로 5를 입력 받은 경우도 입력 받은 것으로 간주해야 한다..