LeetCode 문제 풀이
[LeetCode] 904번 Fruit Into Baskets 문제를 풀어보았다. (ft. java)
pantrom
2023. 2. 7. 22:11
2023년 02월 07일 화요일 - 야근시러
오늘 올려볼 문제는 904번 Fruit Into Baskets 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
문제 좀더 깔쌈하게 풀 수 있었는데 ㄲㅂ
입력
사진에서도 볼 수 있듯이 int 배열 1개가 입력으로 들어온다.
풀이 및 코드
과일을 따기 시작하면 계속 따야한다.
한 바구니에는 한 종류의 과일만 넣어야하며 바구니는 2개가 있다.
가장 많은 과일을 담을 수 있는 경우의 수를 구하는 문제이다.
오늘은 처음부터 정답을 생각해냈다.
오늘도 윈도우 슬라이딩....
이제 코드를 봐보자!
풀이코드
class Solution {
public int totalFruit(int[] fruits) {
int result = 0, diff = 0, index = 0, length = 0;
var map = new HashMap<Integer, Integer>();
for(var f : fruits) {
map.put(f, map.getOrDefault(f, 0) + 1);
if(map.get(f) == 1) diff++;
length++;
while(diff > 2) {
map.put(fruits[index], map.get(fruits[index]) - 1);
if(map.get(fruits[index++]) == 0) diff--;
length--;
}
result = Math.max(result, length);
}
return result;
}
}
제출 화면
사실 diff 변수를 안쓰고 hashmap의 size를 사용하는게 더 좋아보이긴 했다.
나중에는 좀 더 신경쓰면서 푸는걸로!
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.