Problem Solving

https://www.acmicpc.net/problem/6236 6236번: 용돈 관리 현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static long[] money; public static int n; public static int m; public static boolean checkPossible(long cash){ int count=1; long mo=cash; for(int i=0; im) return..
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static long[] lansun; public static int n; public static int m; public static long search(){ long l = 0l; long r = 1l
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static long[] wood; public static int n; public static int m; public static long search(){ long l = 0l; long r = 1_000_000_000l; long h ..
범위를 좁혀가면서 경계선을 찾는다.
https://docs.oracle.com/javase/8/docs/api/
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net Map 이용 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); HashM..
https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 시간을 많이 소모하였다. 1. min값 설정을 잘못하였다. 합의 범위는 곱하기2 +1 을 해주어야 한다. 2. 출력 오름차순을 하지 않앗다. 3.서로 다른 용액을 골라야 한다. -> 이분탐색에서 조건문으로 처리해주어야 한다. 음수일 경우 left를 m+1로 하는 등 import java.util.*; import java.io.*; public class Main..
https://www.acmicpc.net/problem/2295 2295번: 세 수의 합 우리가 x번째 수, y번째 수, z번째 수를 더해서 k번째 수를 만들었다라고 하자. 위의 예제에서 2+3+5=10의 경우는 x, y, z, k가 차례로 1, 2, 3, 4가 되며, 최적해의 경우는 2, 3, 4, 5가 된다. k번째 수가 최 www.acmicpc.net 이진탐색이 아닌 SET 자료형으로도 풀 수 있다. 합을 set에 저장해두고 contains로 확인하는 방법이다. 로직은 똑같다. contains는 O(1)이다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IO..
윤재에요
'Problem Solving' 카테고리의 글 목록 (8 Page)