본문 바로가기

Java/백준

(106)
[JAVA] 백준 12015 가장 긴 증가하는 부분 수열 2 https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net - 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램 - 예를 들어, 수열 A={10,20,10,30,20,50}인 경우에 가장 긴 증가하는 부분 수열은 A={10,20,10,30,20,50}이고 길이는 4이다. 문제 풀이 가장 긴 증가하는 부분 수열 LIS [백준] 12015번 : 가장 긴 증가하는 부분 수열 2 - JAVA [자바] (tistory.com) [백준] 120..
[JAVA] 백준 1450 냅색문제 https://www.acmicpc.net/problem/1450 1450번: 냅색문제 첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 주어진다. 무게도 109보다 작거나 같은 자연수이다. www.acmicpc.net - 세준이는 N개의 물건을 가지고 있고, 최대 C만큼의 무게를 넣을 수 있는 가방을 하나 가지고 있다. - N개의 물건을 가방에 넣는 방법의 수를 구하는 프로그램 문제 풀이 meet in the middle 알고리즘 밋 인더 미들 (Meet in the middle, 중간에서 만나기) 알고리즘 (백준 BOJ 1450) (tistory.com) 밋 인더 미들 (Meet in the middle, 중..
[JAVA] 백준 1644 소수의 연속합 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net - 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어보면 다음과 같다. ex) 3 : 3(1개) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (3개) 53 : 5+7+11+13+17 = 53 (2개) - 하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데, 20이 그 예이다. 7+13을 계산하면 20이 되기는 하나 7과 13이 연속이 아니기에 적합한 표현이 아니다. 또한 한 소수는 반드시 한 번만 덧셈에 사용될 수 있기 때문에 3+5+5+7과..
[JAVA] 백준 1806 부분합 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net - 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램 문제 풀이 [백준/BOJ] 1806번 부분합 (C/C++) (tistory.com) [백준/BOJ] 1806번 부분합 (C/C++) 백준 온라인 저지(BOJ) 1806번 부분합 https://www.a..
[JAVA] 백준 2470 두 용액 https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net - KOI 부설 과학연구소에서는 많은 종류의 산성 용액과 알칼리성 용액을 보유하고 있다. 각 용액에는 그 용액의 특성을 나타내는 하나의 정수가 주어져있다. 산성 용액의 특성값은 1부터 1,000,000,000까지의 양의 정수로 나타내고, 알칼리성 용액의 특성값은 -1부터 -1,000,000,000까지의 음의 정수로 나타낸다. - 같은 양의 두 용액을 혼합한 용액의..
[JAVA] 백준 3273 두 수의 합 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net - n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai+aj = 을 만족하는 (ai, aj)쌍의 수를 구하는 프로그램 문제 풀이 투 포인터 (Two Pointers) [Algorithm] 39강 : 투 ..
[JAVA] 백준 11286 절댓값 힙 https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net - 절댓값 힙은 다음과 같은 연산을 지원하는 자료구조 1. 배열에 정수 x(x != 0)을 넣는다. 2. 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거, 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다. - 프로그램은 처음에 비어있는 배열에서 시작하게 된다. - x가 0이 아니라면 배열에 x라는 값을 넣는(추..
[JAVA] 백준 1927 최소 힙 https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net - 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램 1. 배열에 자연수 x를 넣는다. 2. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거 - x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산 - x가 0이라면 배열에서 가장 작은 값을 출력하고 그 값을 배열에서 제거 문제 풀이 - 우선 순위가 낮은 숫자 순으로 우선 순위 큐를 선언하는 부분 제외하고 ..