Lv 2. 두 큐 합 같게 만들기

2024. 8. 2. 13:16·Algorithm & Data Structures/Programers

 

코드 흐름

  • 두 Queue의 합을 구하고
  • q1 의 sum 이 q2의 sum 보다 작다면
    q1에 q2.poll() 값을 더하고
    sum1 과 sum2를 최신화하여 다음 으로 넘어간다.
  • 위와같은 로직은 최대 이동 횟수 4*queue1의 갯수 가 될때까지 반복된다.
import java.util.*;

class Solution {
    public long solution(int[] queue1, int[] queue2) {
        int answer = -2;
        long sum1=0,sum2=0;
        Queue<Integer> q1 = new ArrayDeque<>();
        Queue<Integer> q2 = new ArrayDeque<>();
        for(int a : queue1){
            sum1+=a;
            q1.add(a);
        }
        for(int a : queue2){
            sum2+=a;
            q2.add(a);
        }
        if(sum1+sum2 % 2 ==1)
            return -1;
        long cnt = 0;
        int num;
        while(cnt <= queue1.length*4)
        {
            if(sum1 == sum2){
                return cnt;
            }
            else if(sum1>sum2)
            {
                num = q1.poll();       
                sum1 -= num;
                sum2 += num;
                q2.add(num);
            }
            else{
                num = q2.poll();       
                sum1 += num;
                sum2 -= num;
                q1.add(num);
            }
            cnt++;
        }
        return -1;
    }
}

 

'Algorithm & Data Structures > Programers' 카테고리의 다른 글

Lv 2. 연속된 부분수열의 합  (0) 2024.08.04
Lv 2. 큰 수 만들기  (0) 2024.08.03
Lv 2. 삼각달팽이  (1) 2024.07.31
Lv 2. 소수찾기  (1) 2024.07.30
Lv 2. 쿼드압축 후 갯수 세기  (0) 2024.07.29
'Algorithm & Data Structures/Programers' 카테고리의 다른 글
  • Lv 2. 연속된 부분수열의 합
  • Lv 2. 큰 수 만들기
  • Lv 2. 삼각달팽이
  • Lv 2. 소수찾기
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (335)
      • Algorithm & Data Structures (253)
        • BOJ (111)
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (29)
        • SQL (23)
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    baekjoon
    투포인터
    DynamicProgramming
    동적계획법
    dp
    Dijkstra
    구현
    스택
    BFS
    전위순회
    PriorityQueue
    후위순회
    programmers
    SQL
    Union-Find
    골드
    다익스트라
    알고리즘
    dfs
    이분탐색
    백준
    Stack
    자바
    Java
    binarySearch
    algorithm
    유니온파인드
    백트래킹
    프로그래머스
    경로압축
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
Lv 2. 두 큐 합 같게 만들기
상단으로

티스토리툴바