queue(2)
-
[Programmers] 두 큐 합 같게 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 두 큐의 합이 같도록 큐의 원소들을 enqueue, dequeue하는 문제이다. 문제 접근은 합이 큰 큐에서 작은 큐로 원소를 enqueue하는 방법을 두 큐의 합이 같아질 때까지 반복하도록 구현했다. 입력값이 int형이므로 총합이 홀수인 경우는 같게 할 수 없으므로 항상 -1을 반환한다. 시도 횟수에 제한을 두는 이유는 순환 문제 때문이다. [1, 1], [1, 5] 인 경우 총합은..
2023.09.07 -
[Baekjoon] 1158번: 요세푸스 문제 - Java
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 방법 1. Queue 먼저 모든 사람을 큐에 넣고 K - 1만큼 빼고 다시 큐에 넣는다. 그 후에 빼는 사람은 K 번째가 되므로 큐가 빌 때까지 이 과정을 반복하는 식으로 해결했다. 시간 복잡도는 O(N * K) 이다. while (!queue.isEmpty()) { IntStream.rangeClosed(1, K - 1).forEach(idx -> queue.add(queue.remove())); ans.add(queue.remove()); } 풀이 방법 2. ArrayList 지..
2023.02.21