문제 링크 : https://www.acmicpc.net/problem/2239🍊해결방법0 빈칸에 1~9 숫자를 넣어서 스도쿠 완성미리 해당 칸에서 가로, 세로, box에 들어갈 후보군들을 관리하자box는 총 9구역으로 (x, y) 좌표에서 (x/3)*3 + y/3 을 하면 해당 좌표가 몇번째 box인지 안다사전순으로 빠른 것을 출력해야하므로 1 ~ 9 까지 차례대로 넣고 완성되는 순간 flag로 관리😀풀이import java.util.*;import java.io.*;public class Main { static List list; static int[][] arr; static boolean[][] row; static boolean[][] col; static boo..
문제 링크 : 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://www.acmicpc.net/problem/14281🍊해결방법블록수열 조건 arr[i-1] + arr[i+1] >= 2 * arr[i] 만족arr[i]는 최소 (arr[i-1] + arr[i+1]) / 2 값을 만족해야함while문을 하면서 arr[i] 값을 조건에 만족하게 조절하자flag 하나 사용해서 해당 flag가 true이면 조건 만족 그 때 cnt 출력😀풀이import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputS..
문제 링크 : https://leetcode.com/problems/maximum-matrix-sum/description/🍊해결방법인접한 두개의 구역(행 or 열)을 정해서 -1을 곱하여 수를 변경하고 행렬 전체의 최대값을 구하여라음수의 개수가 짝수개면 최종적으로 음수의 개수가 없다음수의 개수가 홀수라면 마지막 1개만 음수가 남는다행렬을 탐색하면서 절대값을 sum에 더하고, 최솟값을 갱신한다음수의 개수가 홀수개면 최솟값이 음수가 되면 되므로 sum에서 빼준다😀풀이import java.util.*;class Solution { public long maxMatrixSum(int[][] matrix) { // 음수인 수의 개수를 관리하자 // 결국은 음수개수가 짝수개면 상..
문제 링크 : https://www.acmicpc.net/problem/2023🍊해결방법메모리가 4MB로 에라토스테네스의 체 사용 불가자리수에 있는 수를 하나씩 모두 보면서 각각의 수를 신기한 소수인지 판별하기엔 시간초과모든 수를 과연 다 볼 필요가 있을까?예를들어 2400에서 24를 보는 순간 소수가 아니므로 2400번대는 볼 필요가 없다 2500대로 넘어가자이런 식으로 구현해서 해결😀풀이import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStr..
문제 링크 : https://www.acmicpc.net/problem/12435🍊해결방법1번째소수일 경우 1과 자기자신만 약수이므로 남동생 수 0 이므로 먼저 소수처리소수가 아닐경우 1과 자기자신을 뺀 약수의 개수 구하고 가장 작은 수 arr 저장map에다가 약수의개수를 key 값으로 하고 그때의 수를 list형태로 집어넣자테스트 케이스 별로 N의 개수를 가지는 숫자 리스트를 뽑고N의 idx를 이진탐색으로 찾고 idx까지 돌면서 arr 에서 조건에 맞을 때 present++2번째미리 2부터 1000000까지 차례대로 배수를 1개씩 더하면서 저장하자예를들어 2일때 4, 6, 8, 10 ...... 은 2의 배수이므로 +1이때 가장작은 막내값도 arr에 함께 저장테스트케이스 별 N보다 작을때 조건을 만족..
문제 링크 : 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://www.acmicpc.net/problem/27973🍊해결방법제일 작은 수만 신경 쓰면 된다left = 1로 젤 작은 수 시작문제에서 주어지는 연산을 모와뒀다가 한번에 해주자더하기와 곱하기 변수를 이용해 최종 결과값을 저장하자곱하기를 할때에도 더하기 변수를 곱해줘야 한다!!제거할 때는 left를 해당 수 만큼 더해줘서 몇번째 수 인지 갱신하자마지막에 left에 곱하기 최종을 먼저 곱하고 더하기 최종을 더해주자😀풀이import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = ne..
문제 링크 : 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://www.acmicpc.net/problem/31784🍊해결방법앞에서부터 자물쇠를 한번씩 계속 돌리면서 K번 안에 자기보다 작은 수가 나오는지 확인나보다 작은 경우가 나왔을 때 cnt를 확인cnt가 26보다 크다면 한바퀴 돌린거므로 나보다 작은 경우므로 break!!cnt가 K 범위안에서 돌릴 수 있는지 확인K 범위 안에 돌릴 수 있다면 문자를 바꾸고 cnt만큼 횟수 차감마지막에 K가 0이 아니면 더 돌리는게 가능하므로 마지막 문자만 남은 횟수만큼 돌리기 😀풀이import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException{ ..
- Total
- Today
- Yesterday
- dp
- dfs
- 1482
- 바텀업
- 스프링부트3 자바 17 오류
- 백준 14890
- 오블완
- 조합
- 스프링부트3 java 버전오류
- 백준 14890 자바
- 누적합
- 투포인터
- sql
- 백준
- 백준 경사로 자바
- 탑다운dp
- 유니온파인드
- 백준 경사로
- BFS
- 티스토리챌린지
- 스프링부트3 자바 버전
- 구현
- 이진탐색
- #스프링부트 자바버전 오류
- 백준 14890 경사로
- 탑다운
- leetcode 1552
- 스프링부트3
- 위상정렬
- 슬라이딩윈도우
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |