개발자 톡
연습문제 톡
[HSAT 5회 정기 코딩 인증평가 기출] 업무 처리
코드 로직의 어느 부분이 틀린건지 궁금합니다..
- 등록일
- 2024-07-18 20:14:58
- 조회수
- 170
- 작성자
- jw8851066
subtask 1,2, 17~부터 다 틀립니다.. ㅜㅜ
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] split = br.readLine().split(" "); int H = Integer.parseInt(split[0]); int K = Integer.parseInt(split[1]); int R = Integer.parseInt(split[2]); PriorityQueue<Work> left = new PriorityQueue<>((o1,o2) -> o1.index - o2.index); PriorityQueue<Work> right = new PriorityQueue<>((o1,o2) -> o1.index - o2.index); String[] temp1 = br.readLine().split(" "); for(int j = 0;j<K;j++){ left.add(new Work(Integer.parseInt(temp1[j]),j)); } String[] temp2 = br.readLine().split(" "); for(int j = 0;j<K;j++){ right.add(new Work(Integer.parseInt(temp2[j]),j)); } List<Box> list = new ArrayList<>(); for(int i = 0;i<=H;i++) list.add(new Box()); list.get(H).left = left; list.get(H).right = right; int answer = 0; for(int i = 1;i<=R;i++){ for(int j = 0;j<=H;j++){ if(j == H){ if(!list.get(H).left.isEmpty()){ Work poll = list.get(H).left.poll(); list.get(H-1).left.add(poll); } if(!list.get(H).right.isEmpty()){ Work poll = list.get(H).right.poll(); list.get(H-1).right.add(poll); } continue; } if(i % 2 ==0 && !list.get(j).right.isEmpty()){//짝수 Work poll = list.get(j).right.poll(); if(j != 0) list.get(j-1).right.add(poll); else answer += poll.number; }else if(i % 2 == 1 && !list.get(j).left.isEmpty()){ Work poll = list.get(j).left.poll(); if(j != 0) list.get(j-1).left.add(poll); else answer += poll.number; } } } System.out.println(answer); } } class Box{ PriorityQueue<Work> left = new PriorityQueue<>((o1,o2) -> o1.index - o2.index); PriorityQueue<Work> right = new PriorityQueue<>((o1,o2) -> o1.index - o2.index); } class Work{ int number; int index; public Work(int a, int b){ number = a; index = b; } @Override public String toString(){ return "number = " + number + " : index = " + index; } }
#[HSAT_5회_정기_코딩_인증평가_기출]_업무_처리