본문 바로가기

알고리즘/백준8

백준 1937번 : 회의실 (JAVA) 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 2³¹-1보다 작거.. 2022. 12. 28.
백준 11047번 : 동전 0 (JAVA) 풀이 동전의 개수를 줄이려면 가치가 큰 동전부터 써야 한다. import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int nn = in.nextInt(); int kk = in.nextInt(); int[] arr = new int[nn]; for(int i =0;i=0;i--) { sum += (kk/arr[i]); kk-=arr[i]*(kk/arr[i]); } System.out.println(sum); } } 2022. 12. 27.
백준 11399번 : ATM (JAVA) 풀이 사람 A, B, C가 있다고 가정하면 인출하는데에 필요한 시간은 A+A+B+A+B+C 가 된다. A*3 + B*2 + C*1이기 때문에 필요한 시간이 적은 순서대로 인출하면 최솟값이다. import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int nn = in.nextInt(); int[] arr = new int[nn]; for(int i =0;i 2022. 12. 27.
백준 2839번 : 설탕 배달 (JAVA) 풀이 입력받은 수가 5로 나누어떨어질때까지 3을 뺀다. 3으로 뺀 횟수와 5로 나누었을때의 몫을 더하면 답 import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int nn = in.nextInt(); int answer = 0; if(nn%5==0) { answer = nn/5; } else if(nn==4||nn==7) { answer = -1; } else { while(true) { nn -=3; answer +=1; if(nn%5==0) { answer+=(nn/5); break; } } } System.out.println(answer);.. 2022. 12. 23.