-
[프로그래머스] 두 큐 합 같게 만들기 (2022 KAKAO TECH INTERNSHIP)ALGORITHM/PROGRAMMERS 2022. 9. 18. 22:13
https://school.programmers.co.kr/learn/courses/30/lessons/118667
2022-09-18
12345678910111213141516171819202122232425262728293031323334353637import java.util.*;class Solution {public int solution(int[] queue1, int[] queue2) {int answer = 0;long sum1 = Arrays.stream(queue1).sum();long sum2 = Arrays.stream(queue2).sum();long value = (sum1 + sum2) / 2;Queue<Integer> q1 = new LinkedList<>();Queue<Integer> q2 = new LinkedList<>();for(int i = 0; i < queue1.length; i++) q1.add(queue1[i]);for(int i = 0; i < queue2.length; i++) q2.add(queue2[i]);boolean flag = false;while(answer <= (queue1.length + queue2.length) + Math.max(queue1.length, queue2.length)) {if(sum1 == sum2) {flag = true;break;}if(sum1 > value && !q1.isEmpty()) {int valueQ1 = q1.poll();q2.add(valueQ1);sum1 -= valueQ1;sum2 += valueQ1;} else if (sum2 > value && !q2.isEmpty()){int valueQ2 = q2.poll();q1.add(valueQ2);sum2 -= valueQ2;sum1 += valueQ2;}answer++;}if(!flag) return -1;return answer;}}cs #문제풀이
각 큐를 번걸아가면서 순회하는데 걸리는 최솟값을 while문 조건에 걸어주었다.
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] K진수에서 소수 개수 구하기 (2022 KAKAO BLIND RECRUITMENT) (0) 2022.09.18 [프로그래머스] 성격 유형 검사하기 (2022 KAKAO TECH INTERNSHIP) (0) 2022.09.14 [프로그래머스] 주차 요금 계산 (2022 KAKAO BLIND RECRUITMENT) (0) 2022.06.02 [프로그래머스] 신고 결과 받기 (2022 KAKAO BLIND RECRUITMENT) (0) 2022.05.28 [프로그래머스] 3진법 뒤집기 (월간 코드 챌린지 시즌1) (0) 2021.12.06