목록BOJ/Greedy (9)
Jun's Development Journey
문제 www.acmicpc.net/problem/15729 15729번: 방탈출 첫째 줄에 N(1 ≤ N ≤ 1,000,000)가 주어지고 둘째 줄에는 쪽지에 적혀 있는 N자리의 수가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new Buffer..
문제 www.acmicpc.net/problem/2810 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { //S : 일반좌석, L : 커플석 //인접한 좌석 사이엔 컵홀더 1개씩, 양 끝 좌석에는 하나씩 더 있다. //커플석 사이에는 컵홀더 없다. static int N; static String seats; public static void main(String[] args) throws IOException { //선언 및 입력 BufferedReader br = new BufferedReader..
문제 www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static int N; static int get_package(int N) { ArrayList cnts = new ArrayList(); int f_div = N/5, th_div = N/3; if(N%5==0) cnts.add(N/5); if(N%3==0) cnts.add(N/3); for(int i=..
문제 www.acmicpc.net/problem/2965 2965번: 캥거루 세마리 첫째 줄에 세 캥거루의 초기 위치 A, B, C가 주어진다. (0 < A < B < C < 100) www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static int[] pos; public static void main(String[] args) throws IOException { //선언 및 입력 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; StringBuilder sb = new StringBuilder..
문제 www.acmicpc.net/problem/1434 1434번: 책 정리 첫째 줄에 박스의 개수 N, 책의 개수 M이 주어진다. 둘째 줄에는 박스의 용량 A1, A2, ..., AN이 주어지고, 셋째 줄에는 B1, B2, ..., BM이 주어진다. www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static int N,M; static int cap[], size[]; public static void main(String[] args) throws IOException { //선언 및 입력 BufferedReader br = new BufferedReader(new InputStreamReader(System..
문제 www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 풀이 전형적인 그리디 알고리즘 문제이다. 거스름돈 종류 중 가장 큰 종류부터 순서대로 지불한다면, 최소의 갯수로 만들 수 있다. import java.io.*; import java.util.*; public class Main { static int[] changes = {500,100,50,10,5,1}; static int change_num(int change) { int cn..
문제 www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 풀이 import java.io.*; import java.util.*; public class Main { static int T; static int[] cents; static int[] changes = {25,10,5,1}; static String get_change(int change) { String str = ""; for(int i=0;i
문제 www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 풀이 1) 시간 초과 코드 처음에 브루트 포스 방식으로 시간(ATM 걸리는 시간) 배열의 모든 경우의 수를 이용해 해봤던 코드이지만, 여지없이 시간초과가 떴던 방식이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; //11399 ATM 문제 public class Main { st..