[BOJ/Greedy] 백준 1541 - 잃어버린 괄호 (Java)
·
💻/코딩테스트
백준 1541 - 잃어버린 괄호https://www.acmicpc.net/problem/1541문제양수, +, -, 괄호 -> 식을 만든 뒤, 괄호를 모두 지움=> 괄호를 적절히 쳐서 이 식의 최솟값 ?입력첫째 줄: 식'0' ~ '9', '+', '-' 만으로 이뤄짐, 가장 처음과 마지막 문자는 숫자연속해서 2개 이상의 연산자 X, 5자리보다 많이 연속되는 숫자 X수는 0으로 시작할 수 있음, 식의 길이 출력: 최솟값풀이식의 합이 가장 최소 -> 가장 큰 값을 빼야 함덧셈을 먼저 한 뒤 뺄셈'-' 기준으로 식을 나눔 -> 덧셈 먼저 수행 -> 뺄셈 수행코드import java.io.*;// 잃어버린 괄호public class boj_1541 { public static void main(String..
[BOJ/Greedy] 백준 2457 - 공주님의 정원 (Java)
·
💻/코딩테스트
2457 - 공주님의 정원https://www.acmicpc.net/problem/2457문제총 N개의 꽃, 모두 같은 해에 피어서 같은 해에 짐하나의 꽃은 피는 날과 지는 날이 정해져 있음ex. 5/8에 피어서 6/13일 지는 꽃은: 5/8 ~ 6/12 꽃이 피어 잇고, 6/13 포함한 이후는 꽃을 볼 수 없음(올해: 4, 6, 9, 11월 - 30일, 1, 3, 5, 7, 8, 10, 12월 - 31일, 2월 - 28일)이러한 N개의 꽃들 중에서 두 조건을 만족하는 꽃 선택1. 가장 좋아하는 계절인 3/1 ~ 11/30 매일 꽃이 한 가지 이상 피어 있도록 함2. 정원이 넓지 않으므로 꽃들의 수를 가능한 적게 함입력첫째 줄: 꽃들의 총 개수 N (1 다음 N개의 줄: 각 꽃이 피는 날짜, 지는 날짜e..
[BOJ/Greedy] 백준 11399 - ATM (Java)
·
💻/코딩테스트
11399 - ATMhttps://www.acmicpc.net/problem/11399문제인하은행 ATM 1대, N명의 사람들이 줄 서 있음사람은 1번 ~ N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 PiP_i분사람들이 줄을 서는 순서 -> 돈을 인출하는데 필요한 시간의 합이 달라짐ex. 총 5명, P1=3,P2=1,P3=4,P4=3,P5=2P_1=3, P_2=1, P_3=4, P_4=3, P_5=2 인 경우, 1. [1, 2, 3, 4, 5] 순서로 줄을 선다면1번 사람: 3분만에 돈을 뽑을 수 있음2번 사람: 1번 사람이 돈을 뽑을 때까지 기다려야 함 -> 3 + 1 = 4분3번 사람: 3 + 1 + 4 = 8분4번 사람: 3 + 1 + 4 + 3 = 11분5번 사람: 3 + 1 + 4 + 3 + 2 = 13..
[BOJ/Greedy] 백준 1026 - 보물 (Java)
·
💻/코딩테스트
1026 - 보물https://www.acmicpc.net/problem/1026문제길이가 N인 정수 배열 A, BS=A[0]B[0]++A[N1]B[N1]S = A[0] * B[0] + \dots + A[N-1] * B[N-1]S의 값을 가장 작게 만들기 위해 A의 수를 재배열(단, B에 있는 수는 재배열 X)=> S의 최솟값을 출력입력첫째 줄: N둘째 줄: A에 있는 N개의 수 순서대로 주어짐셋째 줄: B에 있는 수가 순서대로 주어짐N (자연수) 출력: S의 최솟값풀이`Arrays.sort(A)`A: 오름차순 정렬`Arrays.sort(B, Collections.reverseOrder())` B: 내림차순 정렬예시A = [1, 1, 1, 6, 0]B = [2, 7, 8, 3, 1] -> A = [1, 1, 0, 1, 6]과 같이 재배열하..
[BOJ/Greedy] 백준 2217 - 로프 (Java)
·
💻/코딩테스트
2217 - 로프https://www.acmicpc.net/problem/2217문제N개의 로프 -> 물체를 들어올릴 수 있음각각의 로프의 길이와 굵기가 다름 -> 들 수 있는 물체의 중량이 서로 다를 수 있음But, 여러 개의 로프 병렬로 연결 -> 중량 나눌 수 있음ex. k개의 로프 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량 걸리게 됨=> 로프들에 대한 정보가 주어졌을 때, 들어올릴 수 있는 물체의 최대 중량?(모든 로프를 사용해야 할 필요 X, 임의로 몇 개의 로프를 골라서 사용해도 됨)입력첫째 줄: 정수 N (1 다음 N개의 줄에는 각 로프가 버틸 수 있는 최대 중량 (자연수, 출력: 들어올릴 수 있는 최대 중량풀이`int weight = arr[..
[BOJ/Greedy] 백준 1931 - 회의실 배정 (Java)
·
💻/코딩테스트
1931 - 회의실 배정https://www.acmicpc.net/problem/1931 문제한 개의 회의실 -> 사용하고자 하는 N개의 회의에 대하여 회의실 사용표각 회의 I에 대해 시작시간, 끝나는 시간각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 최대 ㅐㄱ수(단, 회의는 한 번 시작하면 중간에 중단 X, 한 회의가 끝나는 것과 동시에 다음 회의 시작 O, 회의의 시작 시간과 끝나는 시간이 같을 수 있음 = 시작하자마자 끝나는 것)입력첫째 줄: 회의의 수 N (1 둘째 줄 ~ N + 1 줄: 각 회의의 정보 (회의 시작시간, 끝나는 시간)시작시간, 끝나는 시간 (자연수 or 0) 출력: 사용할 수 있는 회의의 최대 개수풀이끝나는 시간이 빠른 회의부터 선택끝나는 시간 기준으로 오름차순끝나는 시..
kimmeoww