Lv 2. 디펜스게임

2024. 7. 9. 14:37·Algorithm & Data Structures/Programers

 

코드 흐름

  • 만나는 모든 적의 수가 담긴 enemy 배열에서 만나는 모든 적의 수를 우선 뺀다.
  • 뺀 적의 수를 PriorityQueue<>(Collection.reverseOrder()); 를 통해 내림차순으로 정렬되는 pq에 담는다.
  • 혹여 무적권 찬스가 남아있고 현재 나의 아군이 - 상태라면 while문으로 반복하여 내아군이 +상태가 되거나 chance가 0이 될때까지 반복하는 반복문을 들어간다.
  • 여태 만났던 모든 라운드 중에서 수가 가장 많았던 적군의 수를 pq.poll로 불러내어 그라운드를 무적권으로 방어하고
    내아군을 그만큼 다시 살린다.
  • 만약 내아군이 아직도 -상태에다가 무적권 찬스가 남아있다면 이 조건을 해제할때까지 위과정을 반복한다.
  • 만약 아군이 +상태라면 다음 라운드를 진행하고 answer을 증가시키고 아니라면 게임을 break 한다.

 

import java.util.*;

class Solution {
    public int solution(int n, int k, int[] enemy) {
        int answer = 0, result = n, chance = k;
        Queue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
        for(int enemyCount : enemy){
            result-=enemyCount;
            pq.add(enemyCount);
            while(result < 0 && chance > 0){
                if(!pq.isEmpty()){
                    result += pq.poll();
                    chance--;
                }
            }
            if(result<0)
                break;
            answer++;
        }
        return answer;
    }
}

 

PriorityQueue<>(Collections.reverseOrder());

- 내림차순으로 정렬하는 Queue

 

'Algorithm & Data Structures > Programers' 카테고리의 다른 글

Lv 2. 더 맵게  (1) 2024.07.10
Lv 2. 주식가격  (0) 2024.07.09
Lv 2. 땅따먹기  (0) 2024.07.05
Lv 2. 롤케이크 자르기  (0) 2024.07.04
Lv 2. 뒤에있는 큰수 찾기  (0) 2024.07.02
'Algorithm & Data Structures/Programers' 카테고리의 다른 글
  • Lv 2. 더 맵게
  • Lv 2. 주식가격
  • Lv 2. 땅따먹기
  • Lv 2. 롤케이크 자르기
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (326) N
      • Algorithm & Data Structures (246) N
        • BOJ (104) N
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (27) N
        • SQL (21) N
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    unionfind
    백트래킹
    binarySearch
    투포인터
    Java
    programmers
    알고리즘
    algorithm
    백준
    프로그래머스
    스택
    이분탐색
    구현
    SQL
    후위순회
    Dijkstra
    BFS
    PriorityQueue
    골드
    다익스트라
    전위순회
    Stack
    DynamicProgramming
    동적계획법
    Union-Find
    dp
    baekjoon
    dfs
    유니온파인드
    경로압축
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
Lv 2. 디펜스게임
상단으로

티스토리툴바