설명      풀이 id와 priority를 가진 Person 클래스를 만든다.priority를 입력받을 때, Queue에 Person 클래스를 담아 입력받는다. 핵심 로직은 다음과 같다.초기 answer 값은 0이다. 큐가 비어있지 않는 동안 계속 진행한다.한 명의 환자를 큐에서 꺼낸다.큐를 순회하면서, 방금 꺼낸 한 명의 환자보다 우선순위가 높은 환자가 있는지 조사한다.현재 환자의 우선순위보다 높은 우선순위를 가진 환자가 있다면현재 환자를 큐의 제일 끝에 다시 넣는다.현재 환자를 비도록 한다.반복문을 멈춘다.반복문이 끝났는데 현재 환자가 null이 아니라면answer를 1 증가시킨다.현재 환자가 찾고자 하는 환자인지 확인한다.맞다면 그대로 answer를 리턴한다. answer를 리턴한다.     코드..
설명      풀이 필수과목 순서로 입력받은 문자열을 순회하며 큐에 넣는다.계획한 문자열을 순회하면서 다음 로직을 수행한다.필수과목에 포함되어 있다면 큐에서 꺼낸 값이 해당 값과 동일한지 확인한다.동일하지 않다면 교육과정을 잘못 짠 것으로, 바로 "NO"를 리턴한다. 순회가 끝난 후 큐가 비어있지 않다면 들어야 하는 필수과목이 남아있는 것이므로 "NO"를 리턴한다.     코드package inflearn._5_7;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import jav..
·Baekjoon
문제   풀이큐를 사용하는 문제이다. 다만 큐에 저장을 할 때, 배열 형태로 저장했다. 큐의 [0]은 인덱스 번호, 큐의 [1]은 필요한 피자의 양이다.그래서 큐를 LinkedList queue 로 선언했다. 핵심 로직은 다음과 같다. 큐가 빌 때 까지 반복한다.시간을 1 증가시킨다.큐의 가장 첫 번째 요소를 가져온다.요소[0]은 고유한 사람의 인덱스 번호, 요소[1]은 필요한 피자의 양이다.요소[1]-1 이 0이라면 정답 배열의 요소[0] 값에 시간값을 넣는다.그렇지 않다면 해당 요소[0]은 그대로, 요소[1]은 -1 한 값(피자를 하나 먹었으므로!) 을 큐의 맨 뒤에 넣는다.   코드package baekjoon._15235;import java.io.BufferedReader;import java...
·Baekjoon
문제     풀이자료구조는 큐를 사용하는 문제이다. 나는 back 때문에 Queue가 아닌 LinkedList로 문제를 풀었다. Queue는 FIFO(First In First Out) 데이터 구조의 인터페이스로, Java Collection Framework의 일부이다. 반면 LinkedList는 구체적인 클래스로, List와 Deque 인터페이스를 모두 구현한다. 여기서 Deque는 양방향 큐를 의미하며, Queue 인터페이스를 확장하고 있다. Queue 인터페이스의 주요 메소드는 다음과 같다.boolean add(E e): 큐에 요소를 추가한다. 큐가 꽉 찼을 경우 예외를 던진다.E remove(): 큐에서 요소를 제거하고 반환한다. 큐가 비어있을 경우 예외를 던진다.E poll(): 큐에서 요소를..
coding-orange
'큐' 태그의 글 목록