문제 링크 : https://leetcode.com/problems/check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence/description/🍊해결방법주어진 sentence의 단어들의 접두사가 searchWord로 시작하면 해당 단어 순서를 출력😀풀이class Solution { public int isPrefixOfWord(String sentence, String searchWord) { String[] arr = sentence.split(" "); char[] word = searchWord.toCharArray(); int ans = -1; o :for(int i=0..
문제 링크 : https://leetcode.com/problems/maximum-matrix-sum/description/🍊해결방법인접한 두개의 구역(행 or 열)을 정해서 -1을 곱하여 수를 변경하고 행렬 전체의 최대값을 구하여라음수의 개수가 짝수개면 최종적으로 음수의 개수가 없다음수의 개수가 홀수라면 마지막 1개만 음수가 남는다행렬을 탐색하면서 절대값을 sum에 더하고, 최솟값을 갱신한다음수의 개수가 홀수개면 최솟값이 음수가 되면 되므로 sum에서 빼준다😀풀이import java.util.*;class Solution { public long maxMatrixSum(int[][] matrix) { // 음수인 수의 개수를 관리하자 // 결국은 음수개수가 짝수개면 상..
문제 링크 : https://leetcode.com/problems/count-unguarded-cells-in-the-grid/description/🍊해결방법guard는 4방향으로 쭈욱 움직일 수 있는데 벽을 만나면 그만 움직인다맵에서 guard가 움직이지 않은 구역은 몇개인가guard와 wall을 미리 맵에 -1로 표기해둔다guard를 하나씩 보면서 4방향으로 움직이는 대신 벽을 만나거나 이미 guard인 구간이면 break마지막으로 맵 돌면서 0인 부분 cnt++😀풀이import java.util.*;class Solution { static int[] dx = {-1, +1, 0 ,0}; static int[] dy = {0, 0, -1, +1}; public int count..
문제 링크 : https://leetcode.com/problems/take-k-of-each-character-from-left-and-right/description/🍊해결방법왼쪽부터 선택하고 오른쪽부터 선택해서 a, b, c가 각각 k개 만큼 되도록하는 최솟값은?총 3개의 그룹으로 나눠지게 된다. 왼쪽 / 가운데 / 오른쪽가운데 그룹의 크기에 따라 정답이 결정된다슬라이딩 윈도우를 가운데 그룹 크기에 사용하자가운데 범위에 들어갈 때마다 각각의 a b c 맞는 전체 개수를 마이너스 해주자만약 a b c의 개수가 k개 보다 작아지면 그 때는 가운데 범위를 줄여야 하므로 left부터 줄이자현재 left의 단어 개수++ 해주고 left++ 옮기기a b c 가 k개 이상일 때 까지 진행전체개수 N - 가운데..
문제 링크 : https://leetcode.com/problems/maximum-sum-of-distinct-subarrays-with-length-k/description/🍊해결방법연속된 k개의 부분수열의 합 중 최대값부분수열에서 중복된 숫자는 없어야 한다set을 활용해서 중복검사슬라이딩윈도우를 활용하여 최대값 구하자😀풀이import java.util.*;class Solution { public long maximumSubarraySum(int[] nums, int k) { // 연속된 부분배열의 길이는 k만큼 // 중복되는 수가 있으면 안됨 // 최댓값 출력 int N = nums.length; // 중복된 숫자가 어디에 위치..
문제 링크 : https://leetcode.com/problems/defuse-the-bomb/description/🍊해결방법배열이 주어졌을 때 해당 idx에서 1~k만큼 움직이면서 합한 수를 idx에 저장하자모듈러 연산을 활용해서 배열의 idx 범위안에서 탐색하도록 하자😀풀이import java.util.*;class Solution { public int[] decrypt(int[] code, int k) { int N = code.length; int[] arr = new int[N]; // 정방향으로 k만큼 합 if(k > 0){ for(int i=0; i
문제 링크 : https://leetcode.com/problems/minimized-maximum-of-products-distributed-to-any-store/description/🍊해결방법주어진 quantities 배열의 숫자를 나누어 저장하는데 총 개수가 n개이면서 그 때의 최대값이 최소가 되는 걸 구하여라정답을 기준으로 찾아보자1 ~ 100000 안에 정답이 있다 이진탐색을 활용해 mid 값quantities에 숫자를 mid값으로 나눠 몇개가 만들어지는지 판단여기서 주의해야할게 완전히 안 나눠떨어지면 개수를 +1 해줘야한다예를들어 11을 4로 나누면 4 4 3 으로 저장이 되므로만약 총 개수가 n 보다 작다면 mid값의 오른쪽은 볼 필요 없음😀풀이import java.util.*;clas..
문제 링크 : https://leetcode.com/problems/count-the-number-of-fair-pairs/description/🍊해결방법1lower와 upper 범위 내에서 두수의 합이 범위 안에 있는 쌍의 개수를 구하여라단 i 두개의 수가 필요하므로 for문 2개를 활용해보자범위가 최대 10^5 이므로 이진탐색을 활용하자nums를 오름차순으로 정렬lower를 만족하는 제일 왼쪽에 있는 lowIdxupper를 만족하는 제일 오른쪽에 있는 upIdx구해서 개수를 더해주자😀풀이import java.util.*;class Solution { public long countFairPairs(int[] nums, int lower, int upper) { // index의 ..
문제 링크 : https://leetcode.com/problems/most-beautiful-item-for-each-query/description/🍊해결방법queries에 있는 price보다 잦은 값 중에서 최대 beauty 값을 찾는 것이다items 배열을 정렬하자price를 오름차순으로 하면서 beauty는 내림차순으로 해서 beauty값을 계속 최대값으로 갱신하자queries의 price 값을 가지고 이진탐색을 통해 items에서 찾자😀풀이import java.util.*;class Solution { public int[] maximumBeauty(int[][] items, int[] queries) { // price순으로 오름차순을 하고 같은 가격일 때는 beauty..
문제 링크 : https://leetcode.com/problems/prime-subtraction-operation/description/🍊해결방법배열이 주워졌을 때 i번째 수보다 작은 소수 중에서 적당한 수를 조작해서 증가하는 수열로 만들 수 있는지 판단N의 범위가 1000이므로 소수를 list에 담았다결국 마지막 번째는 조작할 필요없으므로 뒤에서 부터 보면서 증가하는 수열을 만들자i번째에서 i+1번째 수를 보면서 소수list를 돌면서 i+1수 보다 작다면 만족 다음 수로 넘어가자증가하는 수열로 만들 수 있으면 true 없으면 false😀풀이import java.util.*;class Solution { public boolean primeSubOperation(int[] nums) { ..
- Total
- Today
- Yesterday
- 스프링부트3 자바 17 오류
- 티스토리챌린지
- 백준 14890
- 스프링부트3
- 오블완
- 유니온파인드
- sql
- 탑다운
- 구현
- 누적합
- 조합
- 백준 경사로
- 스프링부트3 자바 버전
- 투포인터
- 백준 14890 경사로
- #스프링부트 자바버전 오류
- dfs
- BFS
- 탑다운dp
- 바텀업
- 백준
- 위상정렬
- 백준 경사로 자바
- 백준 14890 자바
- 1482
- 이진탐색
- leetcode 1552
- dp
- 스프링부트3 java 버전오류
- 슬라이딩윈도우
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |