개인 공부/TIL
[ TIL - PGS ] 99클럽 코테 스터디 38일차 TIL + 오늘의 학습 가이드
킴도비
2024. 8. 28. 16:40
💡 오늘의 학습 키워드
- 탐욕법(Greedy)
✅ 오늘 공부한 내용
- 오늘의 프로그래머스 문제! 디펜스 게임
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
👀 오늘의 회고
🔥 어떤 시도를 했는가?
- 오늘의 코드 풀이
import java.util.*;
class Solution {
public int solution(int n, int k, int[] enemy) {
// 최대 힙을 사용하기 위해 우선순위 큐를 생성합니다.
PriorityQueue<Integer> pq = new PriorityQueue<>((a, b) -> b - a);
int answer = 0;
for (int i = 0; i < enemy.length; i++) {
// 현재 라운드의 적 수를 우선순위 큐에 추가합니다.
pq.add(enemy[i]);
// 병사를 사용하여 현재 라운드를 막습니다.
n -= enemy[i];
// 만약 병사의 수가 음수가 되면 (적의 수보다 병사가 부족한 경우)
if (n < 0) {
// 무적권을 사용해야 하므로 가장 많은 병사를 소모할 라운드를 무적권으로 막습니다.
if (k > 0) {
n += pq.poll(); // 병사를 다시 복구하고 무적권을 사용
k--; // 무적권 사용 횟수 감소
} else {
// 무적권이 더 이상 없다면 게임이 종료됩니다.
break;
}
}
answer++; // 막은 라운드 수 증가
}
return answer; // 막은 라운드 수를 반환
}
}
👩💻 내일은 무엇을 학습할 것인가?
- 항해 99 마지막 온라인 세션 진행
- 항해 99 문제 풀기
- 원티드 수업 듣기
- 책 읽기