일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정보처리기사
- 다이나믹 프로그래밍
- 자료 구조
- springboot
- 백준
- 깊이 우선 탐색
- n과 m
- 수학
- 백트래킹
- JPA
- dfs
- 그래프 이론
- 정수론
- 브루트포스 알고리즘
- 구현
- MYSQL
- 재귀
- 프로그래머스
- 문자열
- 그래프 탐색
- 스택
- 프로젝트
- 소수 판정
- Spring Security
- Vue
- 알고리즘
- 너비 우선 탐색
- SWEA
- 배포
- DB
- Today
- Total
목록브루트포스 알고리즘 (11)
영원히 남는 기록, 재밌게 쓰자

문제풀이서로 간의 최단 거리로 이동하는데 있어 가장 긴 시간이 걸리는 육지 두 곳인 지점을 찾아야 한다. 이동이 가능한 모든 육지인 지점에서 BFS탐색을 시작한다.BFS탐색이 끝나면 끝난 dist 배열을 탐색하면서 시작점으로 가장 먼 지점까지의 거리를 비교하면서 제일 긴 거리를 구한다.정답코드package com.baekjoon.graphs.p2589;import java.io.*;import java.util.*;public class Main { static int R, C, ans; static char[][] map; static int[] dr = { 0, 1, 0, -1 }; static int[] dc = { 1, 0, -1, 0 }; static class Nod..

문제풀이문제 그대로 구현을 한다면 시간 초과가 발생한다. 나머지 정리와 조금의 응용이 필요했다.year가 될 수 있는 최대 값은 M, N의 최소 공배수가 될 수 있다. 최소 x 부터 시작하여 M, y 부터 시작하여 N을 만족해야 한다.year % M = xyear % N = y위 두 조건을 만족하여아 하는데 다르게 말하면 year가 M의 공배수 + x 이면 된다.그래서 최소 year = x부터 M만큼 증가시키면 1번 조건을 만족하고 그 떄의 year % N == y이면 위 두 조건을 만족할 수 있다. 하지만 한가지 예외가 10 12 10 6 인 경우 즉, 마지막 해와 N이 같은 경우 답을 체크하지 못함그래서 반복문에 들어가기 전 x와 y에 -1씩 해준 뒤 나머지 정리를 수행마지막 출력 때 year + 1..

문제풀이씨앗이 3개 밖에 없으므로 3개를 심을 동안만 dfs탐색을 진행씨앗을 심을 위치와 그 주변 4방향을 방문처리하고 합을 구한 다음 다시 씨앗을 심은 지점과 주변 4방향을 false로 원복범위가 4방향을 벗어나지 않도록 1 ~ N - 2까지 탐색하면서 방문만 체크하도록 구현정답 코드package com.baekjoon.p14620;import java.io.*;import java.util.*;public class Main { static int N, min = Integer.MAX_VALUE; static int[][] map; static boolean[][] v; static int[] dr = { 1, 0, -1, 0 }; static int[] dc = { 0, ..

문제풀이dfs 알고리즘을 사용하여 재귀적으로 탐색연산이 연산자 우선 순위를 따르는 것이 아니고 처음 숫자부터 차례로 그 결과가 다시 재귀함수를 타고 갱신되는 원리N개의 숫자를 모두 연산하였다면 그 값이 최소값인지 최대 값인지 확인하고 갱신해준다.연산자 갯수가 충분해서 고를 수 있으면 연산자 갯수를 감소시킨다.해당 연산자에 대한 연산을 한 결과로 다시 재귀를 탄다.골랐던 연산자를 다시 원상 복구(연산자 개수를 증가 시켜준다.) 시키면서 모든 경우를 탐색한다.정답코드package com.baekjoon.p15658;import java.io.*;import java.util.*;public class Main { static int N, min = Integer.MAX_VALUE, max = Integ..