Queue4 게임 맵 최단거리(Lv.2) 문제 설명 입출력 예시 요약 상대 진영에 도착하는 최단거리 구하기(막혀있으면 -1 return) 풀이 접근 방식 1. 주어진 이차원 배열 형태로 미로 구성 → 미로 전체를 둘러싸기 위해 행과 열의 크기에 각각 2를 더한 만큼의 maze(boolean 2차원 배열) 생성 → 행의 개수, 열의 개수 만큼 이중 반복문을 통해 maze에 미로 표시 2. bfs를 활용해 최단 경로 구하기 → 상하좌우로 이동할 수 있는 좌표가 담긴 directions (int 2차원 배열) 생성 → 현재 좌표와 이동한 거리를 인스턴스로 갖는 Position 클래스 객체를 큐에 담아 FIFO 방식으로 확인 코드리뷰 import java.util.*; // 현재 좌표(row, col)와 이동한 거리(dist)를 인스턴스로 갖는 Pos.. 2024. 3. 27. 기능개발(Lv.2) 문제 설명 입출력 예시 요약 배포 순서는 정해져 있는 상태에서 기능 개발이 완료된 프로세스는 함께 배포 풀이 접근 방식 1. 기능개발까지 남은 일 수 계산 → 남은 일 수 : (100 - 진행현황) / 속도 2. 배포단계에 있는 프로세스의 남은 일수와 같거나 적은 프로세스는 함께 배포 → Queue 형식으로 데이터 조회 코드리뷰 import java.util.*; class Solution { public int[] solution(int[] progresses, int[] speeds) { List remains = new ArrayList(); List answerList = new ArrayList(); for(int i = 0; i < progresses.length; i++) { int rema.. 2024. 3. 22. 프로세스(Lv.2) 문제 설명 입출력 예시 요약 location에 해당하는 index의 prioties 요소가 몇 번째로 출력되는지 구하기 풀이 접근 방식 1. priority와 location을 갖는 객체 생성 → Priority class 객체 생성 2. Queue 형태로 객체 조회 → ArrayList로 큐 구현 코드리뷰 import java.util.*; class Priority {// priority와 location을 담을 객체 클래스 int priority; int location; public Priority(int priority, int location) { this.priority = priority; this.location = location; } } class Solution { public in.. 2024. 3. 22. 실패율(Lv.1) 문제 설명 입출력 예시 요약 실패율 = 아직 클리어하지 못한 플레이어 수 / 도전한 인원 풀이 문제 해석 실패율이 높은 순서대로(서로 같은 스테이지가 있다면 스테이지 순서대로) return 접근 방식 1. 도전 인원 map 구성 → 1번 스테이지 도전인원: stages.length, 나머지 스테이지: 이전 스테이지의 도전인원 - 실패인원 2. 실패율이 같은 경우 스테이지 순서대로 담기 → Queue 형식으로 객체를 꺼내 조회하면서 stream().anyMatch() 메소드를 통해 가장 작은 스테이지인지 추가로 확인 코드리뷰 import java.util.*; class Solution { class FailRate {// 실패율과 스테이지를 담을 객체 클래스 double rate; int stage; p.. 2024. 3. 22. 이전 1 다음