[LeetCode 75/Queue] 993 - Number of Recent Calls / 649 - Dota2 Senate (Java)
·
✏️/LeetCode
993 - Number of Recent Calls풀이`RecentCounter()`: 최근 요청 수 0으로 초기화`int ping(int t)`: 시간 t에 새로운 요청 추가, 지난 3000밀리초 동안 발생한 요청 수(새로운 요청 포함) 반환/ [t - 3000, t ] 범위 내에서 발생한 요청 수 반환=> 시간 t 계속 증가 -> 최근 3000ms 안에 있는 요청만 유지=> Sliding Window + Queue (새로운 요청 뒤에 추가, 오래된 요청 앞에서 제거: FIFO)Queue q; 생성자public RecentCounter() { q = new LinkedList();} `ping(int t)`: t 기준으로 지난 3000ms 안에 있는 요청 수 반환q.offer(t)[t - 3000..
[LeetCode 75/Hash Map & Set] 2215 - Find the Difference of Two Arrays / 1207 - Unique Number of Occurrences / 1657 - Determine if Two String Are Close / 2352 - Equal Row and Column Pairs (Java)
·
✏️/LeetCode
2215 - Find the Difference of Two Arrays풀이두 배열 nums1, nums2 `answer[0]`: nums1에만 있고 nums2에는 없는 값들`answer[1]:` nums2에만 있고 nums1에는 없는 값들-> 중복 없이(distinct) 반환 => `Set`코드class Solution { public List> findDifference(int[] nums1, int[] nums2) { Set set1 = new HashSet(); Set set2 = new HashSet(); for (int n : nums1) set1.add(n); for (int n : nums2) set2.add(n); Lis..
[LeetCode 75/Prefix Sum] 1732 - Find the Highest Altitude / 724 - Find Pivot Index (Java)
·
✏️/LeetCode
1732 - Find the Highest Altitude풀이시작 고도 = 0 / 현재 고도(`cur`) += `gain[i]`altitude[i + 1] = altitude[i] + gain[i]코드class Solution { public int largestAltitude(int[] gain) { int cur = 0; int max = 0; for (int g : gain) { cur += g; max = Math.max(max, cur); } return max; }}724 - Find Pivot Index풀이피벗 인덱스: 해당 인덱스 바로 왼쪽에 있는 모든 숫자의 합 == 해당 인덱..
[LeetCode 75/Sliding Window] 643 - Maximum Average Subarray 1 / 1456 - Maximum Number of Vowels in a Substring of Given Length / 1004 - Max Consecutive Ones 3 / 1493 - Longest Subarray of 1's After Deleting One Element (Java)
·
✏️/LeetCode
643 - Maximum Average Subarray 1풀이길이가 k인 연속된 부분 배열의 평균 최대-> 합이 최대여야 함 처음 k개 합 계산 -> 한 칸씩 이동하면서 새로운 값 더하고 빠지는 값 빼기`sum += nums[i]``sum -= nums[i]`코드class Solution { public double findMaxAverage(int[] nums, int k) { int n = nums.length; long sum = 0; for (int i = 0; i 1456 - Maximum Number of Vowels in a Substring of Given Length풀이길이가 k인 연속된 부분 배열의 모음 개수 최대 처음 모음 개수 계산 -> ..
[BOJ/Two Pointers] 백준 1253 - 좋다 (Java)
·
✏️/BOJ
1253 - 좋🤙다👍https://www.acmicpc.net/problem/1253문제N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 좋다(GOOD)고 함=> N개 수가 주어지면 그 중에서 좋은 수의 개수 몇 개?(수 위치 다르면 값이 같아도 다른 수)입력첫째 줄: 수의 개수 N (1 두 번째 줄: i번째 수 나타내는 A_i가 N개 주어짐 (|A_i| 출력: 좋은 수의 개수 풀이어떤 수 A[k]가 서로 다른 두 수 A[i] + A[j]로 표현되면 좋다-> 두 수 합이 특정 값(target)이 되는 경우 => 투포인터 or 이분탐색 or 해시 수 범위: -10^9 ~ 10^9 => `long[] arr` Two Pointers(투포인터)투포인터는 정렬된 상태에서만 가..
[LeetCode 75/Array & String] 605 - Can Place Flowers / 345 - Reverse Vowels of a String / 151 - Reverse Words in a String (Java)
·
✏️/LeetCode
605 - Can Place Flowers풀이앞 / 현재 / 뒤 0 -> 현재 위치에 꽃 심기 가능 => 꽃 심기(`flowerbed[i] = 1`)`i == 0 || flowerbed[i - 1] == 0`: 맨 앞이면 왼쪽 자동 통과 / 아니면 왼쪽 0이어야 함`i == flowerbed.length - 1 || flowerbed[i + 1] == 0`: 맨 끝이면 오른쪽 자동 통과 / 아니면 오른쪽 0이어야 함flowerbed[i] == 0 &&(i == 0 || flowerbed[i - 1] == 0) &&(i == flowerbed.length - 1 || flowerbed[i + 1] == 0))코드class Solution { public boolean canPlaceFlowers(in..
aeongg
빙글빙글 돌아가는 Debug 하루