목록queue (14)
기록방
👉 문제링크 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 🔸 문제 분석 🔸 NxN 게임판에서 뱀이 이동하는 게임이 몇초간 진행 되는지 반환한다. 게임 판에는 K개의 사과가 있고, 사과를 먹으면 몸 길이가 1 늘어나며 기존의 꼬리 위치가 변경되지 않는다. 몸 혹은 게임판 벽에 부딪히면 게임이 종료된다. 🔸 문제 풀이 🔸 특별한 알고리즘이 없는 시뮬레이션 문제이다. 뱀의 방향 전환 정보와 뱀의 꼬리 좌표를 기억하기 위해 큐 자료구조를 사용한다. 🔸 코드 🔸 import java.io.*; import java.uti..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 큐에서 앞 원소를 꺼낸다. (poll) 꺼낸 원소보다 우선순위가 더 높은 원소가 있다면, 꺼낸 원소를 다시 큐에 넣는다. (add) 우선순위대로 원소를 꺼내다가 처음 위치가 location인 원소가 나올 때의 꺼낸 원소 수를 반환한다. 🔸 문제 풀이 🔸 원소들의 우선순위와 처음 위치를 기억하기위해 두 요소를 담은 클래스 Process를 만들어 Queue에 저장한다. 우선순위대로 꺼내기 위해 PriorityQueue에 원소를 저장한다. 우선순위 큐에 나온 원소와 같은 원소가 나올 ..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 각 작업의 개발 진행도와 하루동안 진행 할 수 있는 개발 진도율이 주어진다. 작업 순서대로 배포되어야 하며, 배포 시점에 개발 진행도 100%라면 함께 배포 할 수 있다. 배포되는 작업의 개수 배열을 출력한다. 🔸 문제 풀이 🔸 개발을 진행한 날짜를 하루 진행 개발 진도율과 곱해, 개발이 완료됐는지 혹은 얼마나 남았는지 계산한다. 개발이 완료된 것들은 연속된 수를 카운트한다. 개발이 완료되지 않았으면, 이전에 쌓아둔 카운트를 정답 배열에 저장해놓고, 카운트를 0으로 돌린 뒤 날짜..
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 캐시 교체 알고리즘 중 LRU (Least Recently Used)를 구현하는 문제이다. 🔸 문제 풀이 🔸 크기 제한이 있는 큐 형태에서 가장 사용한지 오래 된 도시 이름을 먼저 지워주는 방식으로 구현한다. cache hit일 경우는 해당 도시 이름을 가장 최근에 사용한 것으로 옮겨주어야 한다. 도시 이름이 대소문자를 구분하지 않아야 하고, cacheSize가 0이 될 수 있음에 유의한다. 🔸 코드 🔸 import java.util.ArrayDeque; import java.u..
👉 문제링크 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 🔸 문제 분석 🔸 큐에 1개의 원소가 남을때까지 계산을 반복한다. 맨 앞 원소를 제거한다(poll). 다시 맨 앞 원소를 빼서 가장 아래에 넣는다(add(poll)). 마지막 원소를 출력한다. 🔸 코드 🔸 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { public static void main(String[] args) ..