Loading...

[백준] 1992번 쿼드 트리 (java, 완전탐색)

www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 맵을 1/4로 쪼개서 만드는 것은 한 번 해봐서 이번에는 익숙하게 했다. 안해봤다면 어려웠을 것이다. 1/4로 쪼갠 행과 열의 시작점과 길이(현재길이len의 반)을 재귀로 돌면된다. 시작점의 수와 해당 범위안에서 for문을 돌면서 하나라도 다른 원소가 있으면 다시 1/4로 쪼개서 재귀를 돌아준다. 재귀를 돌기 전에 (을 더하고 모든 원소가 갔을 때 시작점의 원소를 더해주고 재귀가 끝나면 )을 더해준..

[백준] 17135번 캐슬 디펜스 (java)

www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 어디가 틀린지 찾느라 힘들었다... 1. 궁수의 위치는 nC3으로 배치해 놓은 다음 가장 많은 적을 처치하는 경우는 언제인지를 찾는다. 2. 성의 위치(행) castle을 n으로 놓고 성이 점점 위로 올라가는 것처럼 1씩 줄인다. castle-=1 왼쪽부터 검사해서 길이가 최소이면 해당 위치를 저장해놓고 모든 행을 봤을 때 길이가 가장 작았던 곳을 enemy 배열에 추가한다. 여러 궁수가 같은 적을 공격할 수 있기 때문에..

[백준] 1074번 Z (JAVA, 완전 탐색 )

www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 시간초과를 줄이기 위해서는 범위가 아닌 곳은 재귀로 추가 탐색하지 말아야된다. 만약 r보다 작거나 c보다 작은 곳은 ans값만 더해주고 건너뛴다. 더해주는 값은 (len/2)*(len/2)이다. len은 현재 탐색하는 사각형 한 변의 길이이다. import java.util.Scanner; public class Main { static int n,r,c; static int xpos[]= {0,1,0,..

[백준] 1931번 회의실 배정 (java, 그리디)

www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 회의실 끝나는 시간을 첫 번째 기준으로, 끝나는 시간이 같다면 시작시간 기준으로 오름차순 정렬한다. import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { static class MeetingRoom implements Comparable{ int start,end; public MeetingRoom( int start, int end) { super(); this...

[백준] 2839번 설탕 배달 (java)

www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 완전탐색 + 메모이제이션 기법을 사용 만약 같은 무게를 다시 재귀로 들어올 경우 기존보다 사용한 봉지의 수가 더 작을 경우만 vis[해당무게]를 업데이트하고 완전 탐색을 돌려준다. 만약 같은 무게인데 사용한 봉지의 수가 더 많은 경우는 더이상 검사할 필요가 없다. import java.util.Scanner; public class Main { static int n; static int ans=Integer.MAX_VA..

[백준] 3040번 백설 공주와 일곱 난쟁이

www.acmicpc.net/problem/3040 3040번: 백설 공주와 일곱 난쟁이 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. www.acmicpc.net 사실 이중 포문으로 풀면 되는데 (아닌 2명만 찾으면 됨) 조합으로 해보라는거 같아서 조합으로 풀었다 import java.util.Scanner; public class Main { static int height[]=new int[9]; static boolean v[]=new boolean[9]; static int sum; public static void main(String[] args) {..

[백준] 2961번 도영이가 만든 맛있는 음식 (java, 부분 집합 subset)

import java.util.Scanner; public class Main { static int n,s,b; static int[][] a; static int ans=Integer.MAX_VALUE; public static void main(String[] args) { Scanner sc=new Scanner(System.in); n=sc.nextInt(); a=new int[n][2]; for (int i = 0; i Math.abs(sour-bitter) && c!=0) { ans=Math.abs(sour-bitter); } return; } subset(cnt+1,sour*a[cnt][0],bitter+a[cnt][1],c+1); subset(cnt+1,sour,bitter,c); } }

[백준] 17406. 배열돌리기4 (JAVA)

www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 거의 인내심 테스트 문제.. SW역량 어렵게 나오면 이렇게..? 시간 많이 잡아먹게 나올듯 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int n,m,k..

[백준] 16935번 배열돌리기3 (JAVA, C++)

www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net 1. JAVA import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int n,m,r; static int[][] ..

[백준] 16926번 배열돌리기1 (java)

www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net 1에서만 가능한 풀이인듯.. 어떻게 할지 고민하느라 손가는 대로 풀었는데 한번에 현재 위치+r에 있는 원소를 가져오는 방법을 강구해야 다음 난이도 문제들이 풀릴 것 같다. import java.util.Scanner; public class Main { static int n,m,r; static int[][] map..