본문 바로가기

전체 글61

스택/큐 - 다리를 지나는 트럭 프로그래머스(스택/큐) - 다리를 지나는 트럭 해당 문제는 다리를 지나는 트럭의 정보를 담은 큐(이하 BQ)를 사용하여 풀었습니다. 반복문을 전체 트럭이 도착할때까지 돌리며 해당 반복문이 돌때 마다 BQ에서 다리위 트럭의 정보를 뽑아 다리 길이와 같을 경우 도착으로 치고 그외의 트럭의 전체 무게와 이제 지나야 하는 트럭의 무게를 더해 그 무게가 다리가 견딜 수 있는 무게보다 작을 경우 BQ에 이제 지나야 하는 트럭의 정보를 집어 넣고 기존 BQ의 트럭의 위치도 1씩 움직이게 했습니다. 무게보다 크고 BQ에 트럭이 있는 경우에는 (다리 길이 - 처음 출발한 트럭의 현 위치)를 뺀 시간 만큼은 다른 트럭이 올라 갈 수 없으므로, 그 시간 만큼 현재 BQ 트럭의 위치를 옮겨주도록 했습니다. import jav.. 2022. 2. 7.
해시 - 베스트앨범 프로그래머스(해시) - 베스트앨범 해당 문제는 hashMap 2개와 정렬을 통해 문제 그대로 풀었습니다. genre 명을 key로 하나의 해시맵(이후 playListMap)은 고유 id 값을 가진 play count에 따라 정렬된 리스트를 값으로 가지고, 다른 하나(이후 totalCountMap)는 genre 명을 key로 total play count를 가지고 있습니다. 이 후 로직은 totalCountMap에서 각각의 totalCount로 정렬을 한 키값을 구한 후 그 키값 순으로 playListMap에서 데이터를 꺼내 2개 혹은 1개의 리스트를 답변 리스트에 넣은 후 그 리스트를 array로 변경하였습니다. public int[] solution(String[] genres, int[] plays).. 2022. 2. 4.
스택/큐 - 프린터 프로그래머스 (스택/큐) 프린터 해당 문제는 문제 그대로 큐 2개를 사용하여 풀었습니다. 문제 그대로 가장 앞에 있는 값을 나머지 꺼내오는 값들과 비교하여 가장 클 경우에 complete queue에 넣고 그 외에는 그대로 다시 queue에 넣어 주는 식으로 구현하였습니다. complete queue에 넣어 줄때의 location(내가 인쇄를 요청한 문서)이 0인 경우의 complete queue의 size가 문제에서 요구하는 대기 순서입니다. import java.util.*; class Solution { public int solution(int[] priorities, int location) { int answer = location; Queue queue = new LinkedList(); Q.. 2022. 2. 3.