2023년 01월 04일 수요일 - 왜 아직도 수요일?
오늘 올려볼 문제는 2244번 Minimum Rounds to Complete All Tasks 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
3분컷!
입력
사진에서도 볼 수 있듯이 int 배열 1개가 입력으로 들어온다.
풀이 및 코드
입력으로 각 일의 level들이 들어온다. 일을 할 때는 무조건 같은 level의 일 2개 또는 3개씩 해야한다.
이 때 최소로 일하는 횟수를 구하는 문제이다. (못구하면 -1 리턴)
오늘은 처음부터 정답을 생각해냈다.
1개를 제외하고는 2를 더한다음에 3을 나눈 값이 해당 level에 있는 일을 하는 최소한의 횟수이다.
ex) 2 level 일이 8개 있으면 (8 + 2) / 3 => 3 즉 [3개, 3개, 2개] 이렇게 일을 처리하는 식으로
이제 코드를 봐보자!
풀이코드
class Solution {
public int minimumRounds(int[] tasks) {
var map = new HashMap<Integer, Integer>();
var result = 0;
for(var task: tasks) map.put(task, map.getOrDefault(task, 0) + 1);
for(var value: map.values()) {
if(value == 1) return -1;
result += (value + 2) / 3;
}
return result;
}
}
제출 화면
오늘은 생각보다 문제가 너무 쉬웠다.
내일은 좀 재미진 문제가 나왔으면 좋겠다.
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.
'LeetCode 문제 풀이' 카테고리의 다른 글
[LeetCode] 1833번 Maximum Ice Cream Bars 문제를 풀어보았다. (ft. java) (0) | 2023.01.06 |
---|---|
[LeetCode] 452번 Minimum Number of Arrows to Burst Balloons 문제를 풀어보았다. (ft. java) (2) | 2023.01.05 |
[LeetCode] 944번 Delete Columns to Make Sorted 문제를 풀어보았다. (ft. java) (2) | 2023.01.03 |
[LeetCode] 520번 Detect Capital 문제를 풀어보았다. (ft. java) (0) | 2023.01.02 |
[LeetCode] 290번 Word Pattern 문제를 풀어보았다. (ft. java) (0) | 2023.01.01 |