목록큐 (5)
개발 무지렁이
카드2 🪅 카드를 빼는 위치와 옮기는 위치를 보고서 큐(Queue)를 생각할 수 있느냐 🪅 큐(Queue)를 구현할 수 있느냐 => new ArrayDeque(); 🪅 어떤 동작을 반복할 때, 반복동작을 메서드로 만들 수 있느냐 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; /** * 백준 2164번 카드2 * * 입력: * 첫째 줄에 정수 N(1 ≤ N ≤ 500,000)이 주어진다. * * 출력: * 첫째 줄에 남게 되는 카드의 번호를 출력한다. * */ public class Main {..
요세푸스 문제 🪅 일부가 순환되는 것을 보며 큐(queue)를 생각할 수 있느냐 🪅 큐를 구현할 수 있느냐 💡 문제 접근 과정 : k번째가 되어 제거되기 전까지는 첫번째 ~ k-1번째까지는 순서가 뒤로 밀린다. 즉, 첫번째부터 k-1번째까지 빼서 뒤로 넣으면 되고, 빼는 출구와 넣는 입구가 다르므로 큐를 생각해냈다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; import java.util.StringTokenizer; /* * 백준 1158번 요세푸스 문제 * * 입력: * 첫째 줄에 N과..
기능개발 🪅 넣은 순서대로 빼는 것을 보고 큐를 생각할 수 있느냐 => List를 이용하기 전에 스택/큐를 생각해본다 🪅 클래스를 새로 만들어 복잡한 자료를 잘 정리할 수 있느냐 🪅 큐를 Integer[]로, Integer[]를 int[]로 변환할 수 있느냐 💡 문제 접근 과정 'progresses'의 원소와 'speeds'의 원소를 이용해서 배포하기까지의 남은 일수를 계산해야했다. 일단 이 원소들을 필드에 저장해두고 관련 메서드를 만들어 이를 이용하면 되겠다는 생각에 Work라는 클래스를 만들었다. 처음엔, 그렇게 만든 work 객체에서 calculateDays 메서드를 통해 얻은 restDays를 아무생각없이 List에 넣었다. 그리고 List를 순회하며, 현재값과 그 다..
큐(Queue) 먼저 들어온게 먼저 빠지는 형태의 자료구조를 말한다. 큐(Queue)의 구현 Queue queue = new LinkedList(); 큐(Queue)의 메서드 🌝 예외발생 추가: add() 삭제: remove() 검사: element() 🌚 null or false 리턴 추가: offer() 삭제: poll() 검사: peek()
그래프의 모든 노드를 탐색하는 BFS(Breadth First Search) 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 시작노드에서 출발하여 레벨 기준으로 자기 레벨을 다 탐색하고 내려가는 과정을 반복하는 것을 ' 넓이우선탐색(BFS) '라고 한다. ** (시작노드 기준으로 가까운 노드를 먼저, 최단경로를 보장) ** 🕑 시간복잡도: O(V+E) (V:정점수, E:간선수) [모든 정점을 한 번씩 방문하고, 그러기 위해 모든 간선을 한 번씩 검사했으니] BFS와 큐 BFS는 큐(Queue)로 구현하며, 큐(Queue)란 먼저 들어온게 먼저 빠지는 형태의 자료구조(FIFO)를 말한다 Queue queue = new ArrayDeque(); BFS 코드 구현 ⚠️ 한번 방문한 노드..