본문 바로가기
반응형

알고리즘 PS/Greedy4

[백준] 11497번 - 통나문 건너뛰기(Java)(○) https://www.acmicpc.net/problem/11497 11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net 1. 오름차순 정렬을 한다. 2. 가장 큰 기둥을 중간에 배치하고 그 다음 큰 기둥은 오른쪽에, 그 다음 큰 기둥은 왼쪽에 배치한다. 3. 이런 식으로 마지막까지 배치를 완료한다. 4. ArrayList A는 오른쪽에 배치하는 기둥을 넣고, ArrayList B는 왼쪽으로 배치하는 기둥을 넣도록 한다. 5. 가장 큰 수는 A와 B 모두 집어넣는다. 6. 그 다음 수부터 번갈아가면서 A, B에 집.. 2023. 5. 31.
[백준] 1946번 - 신입사원 (Java)(○) https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net [문제접근] 입력값이 점수가 아니라 순위라는 것을 이해하지 못해서 한참을 헤맸다. 먼저 직원을 선발하지 않는 조건을 잘 살펴보자. * 선발하지 않는 조건 1. 서류순위와 면접순위가 더 높은 지원자가 있다면 그 지원자는 떨어진다. 2. 서류순위를 기준으로 오름차순 정렬을 하면, 자기보다 서류순위가 떨어지는 사람들은 비교할 필요가 없다. 3. 나보다 서류순위가 높음 지원자의 면접.. 2023. 5. 30.
[이코테][기출] 01. 모험가 길드 모험가가 N명 있다. 공포도가 X인 모험가는 반드시 X명 이상의 모험가 그룹이 필요하다. 최대 몇명의 모험가 그룹을 만들 수 있는가? 배열 A[N]을 정의해서 공포도를 저장한다. 오름차순으로 정렬한다. for (i = N to 0) A[N]의 공포도만큼 i를 전진하고, count++한다. (10분 걸림) 오름차순으로 정렬하는 것까지는 생각함. 하지만 공포도가 낮은 것부터 확인해서 일단 그룹에 모험가를 포함시키고 그 수와 현재 확인중인 공포도를 비교하는 로직은 생각하지 못함. --------------------------------------------------------------------------------------------- 공포도를 기준으로 오름차순으로 정렬을 한다. 공포도가 낮은 모험가.. 2022. 10. 18.
[백준] 1931번 - 회의실 배정 (Java)(○) https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net [첫번째] N개의 회의가 주어지고, 각 회의마다 시작시간과 끝나는 시간이 주어진다. 각 회의가 겹치지 않게 하면서 최대한 많이 회의를 사용할 수 있는 개수를 구하라. 회의의 시작시간과 끝나는 시간이 같을 수 있다. 그리디 알고리즘으로 접근하자. class를 선언해서 시작시간과 끝나는 시간을 저장하자. 이 클래스 배열을 끝나는 시간 기준으로 오름차순 정렬을 하자. 루프를 돌리면서 지금 회의의 끝나는 시간과 다음 회의의 시작 시간을 비교하자. 다음 회의의 시작 시간이 같거나 더 크면 회의 갯수를 누적합 시킨다. 선택.. 2022. 10. 11.
반응형