https://www.acmicpc.net/problem/3985
3985번: 롤 케이크
문제 인기 티비 프로그램 "나는 요리사 인가?"의 새 시즌이 시작한다. 이번 시즌은 기네스북에 등재될 만한 음식을 만드는 것을 목표로 진행한다. 첫 번째 에피소드에 출연하는 요리사는 전설의 요리사 김상근이고, 길이 L미터의 롤 케이크를 만들 것이다. 상근은 몇 시간동안 집중해서 케이크를 만들었고, 이제 스튜디오의 방청객 N명에게 케이크를 나누어 주려고 한다. 상근이는 롤 케이크를 펼쳐서 1미터 단위로 잘라 놓았다. 가장 왼쪽 조각이 1번, 오른쪽 조각이
www.acmicpc.net
목표: 가장 많은 케이크 조각을 받을 것으로 기대한 방청객의 번호와 실제로 가장 많은 케이크 조각을 받는 방청객의 번호를 구하기 |
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int L = sc.nextInt();// 롤케이크 길이
int N = sc.nextInt();// 방청객의 수
int answer = 0;// 방청객 번호
int[][] arr = new int[N][2];
for (int i = 0; i < N; i++) {
arr[i][0] = sc.nextInt();
arr[i][1] = sc.nextInt();
}
int[] lol = new int[L+1];
int max = 0;
for (int i = 0; i < N; i++) {// 가장 많은 조각을 받도록 예상되는 방척객
if (max < arr[i][1] - arr[i][0]) {
max = arr[i][1] - arr[i][0];
answer = i + 1;
}
}
System.out.println(answer);
// 실제로 가장 많은 조각을 받은 방청객 번호출력
for (int i = 1; i <= N; i++) {
for (int k = arr[i - 1][0]; k <= arr[i - 1][1]; k++) {
if (lol[k] == 0) {
lol[k] = i;
}
}
}
// for (int i = 0; i < lol.length; i++) {
// System.out.print(lol[i]+" ");
// }
max = 0;
for (int i = 1; i <= N; i++) {
int count = 0;
for (int j = 0; j < lol.length; j++) {
if (lol[j] == i) {
count++;
}
}
if (count > max) {
max = count;
answer = i;
}
}
System.out.println(answer);
}// eom
}
'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
[백준] 13335번 트럭 (0) | 2020.04.02 |
---|---|
[백준] 10026번 적록색약 (0) | 2020.04.01 |
[백준] 2577번 숫자의 개수 (0) | 2020.04.01 |
[백준] 2999번 비밀 이메일 (0) | 2020.04.01 |
[백준] 2941번 크로아티아 알파벳 (0) | 2020.04.01 |