일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- N과M
- 중복조합
- 코테
- 전화번호속의암호
- 에라토스테네스의채
- 백준15652
- 재귀함수
- 중복순열
- 삼성역테
- 정보처리기사
- 파티션 크기 조정
- 23288
- 순열
- 알고리즘
- 볼륨 만들기
- 백준
- 자바
- D드라이브생성
- 알고리즘개념
- 완탐
- 자바 코테
- 코테준비
- 완전탐색
- Bfs와DFS
- 백준2251
- 정올 1620
- 백준13458
- java
- BFS
- 주사위굴리기2
- Today
- Total
목록알고리즘/백준 (87)
뚱땅뚱땅
www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 풀이 DP 는 어렵지 않게 풀었지만, mod연산때문에 계속 틀렸었다. sum += dp[N][i] % mod; 에서 연산자 우선순위를 고려해야한다. public class BOJ_10844 { static long mod = 1000000000; public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); i..
www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 내 풀이 부분집합 public class BOJ_17471 { static int N; static int[] people; static int min; static ArrayList list; public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader in = new BufferedReader(new InputStr..
www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 내 풀이 처음에 치즈 가장자리를 처리하는 방법에 대해 고민을 많이 했다. 치즈가 있는 위치에서 DFS를 하는게 아니라, 외부공기 기준으로 DFS를 해냐가면, 쉽게 가장자리를 처리할 수 있다. public class BOJ_2636 { static int[][] matrix; static int sero, garo; public static void main(String[] args) throws IOException { Buffe..
www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 내 풀이 여기서의 포인트는 bfs를 이용해서 최단거리를 구하는 것이다. 처음에 거리를 구할 때 원래 거리 구하던 방식이었던 dfs로 해보니 계속 엉뚱한 답이 나왔었다. bfs, dfs를 이용해 최단거리 구하는 방법 꼭 익힐 것!! public class BOJ_16236 { static int N, sharkW = 2, sharkX, sharkY; // 상어 무게, 현재 상어 좌표 static int[]..
www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 내 풀이 부분집합 구하는 공식으로 풀면 빠르게 풀리는 문제! 단, 합이 0일 때 공집합 제외해주는 것 잊지 말자 public class BOJ_1182 { static int N, S; static int[] arr; static int answer = 0; public static void main(String[] args) throws IOException { Buffer..