본문 바로가기

분류 전체보기213

백준 2751 Merge Sort 구현#include using namespace std;int n;int arr[1000005];int tmp[1000005];void merge(int st, int ed) { int mid = (st + ed) / 2; int lIndex = st; int rIndex = mid; for (int i = st; i = ed) tmp[i] = arr[lIndex++]; else if (arr[lIndex] > n; for (int i = 0; i > arr[i]; mergeSort(0, n); for (int i = 0; i 2024. 6. 16.
Merge Sort import java.util.Scanner;public class Main2 { static int n; static int[] arr = {2,1,3,-1}; static int[] temp = new int[1000005]; static public void merge_sort(int st,int ed) { // 배열의 길이가 2라고 가정하면 st=0, ed=2 // 배열의 길이가 3일때 홀수일때도 체크해보면 문제없음 if(ed == st+1) return; int mid = (st+ed)/2; merge_sort(st,mid); // (0,1) merge_sort(mid,ed); // (1,2) merge(st,ed); // (0,2) } static public void me.. 2024. 6. 15.
백준 9663 n=2 라고 가정했을 때, 2*2 행렬에서 2개의 퀸이 배치될 수 있는 모든 수를 구하는 문제이다. 전체적으로 n만큼 반복하고, 재귀적으로 다시 n만큼 돌면서 퀸이 배치될 수 있는 모든 경우의 수를 체크한다. import java.util.Scanner;public class Main2 { static int n; static int QueenCnt = 0; // 3가지 상태 확인 // 1.같은 열에 있는지 // 2.좌측하단 우측상단 대각선 // 3.좌측상단 우측하단 대각선 // ** 수학적으로 규칙을 판단할 필요 ** // 대각선에서 필요한 배열 칸의 개수 1=1, 2=3, 3=5 -> 2n-1 -> 문제에서 n의 최대 개수가 14이므로 크기를 최소 27로 설정해야 함 static boolean.. 2024. 6. 12.
백준 - 15683 Javaimport java.util.*;public class Main { /* 1.어떤 방식으로 문제에 접근해야 되는가? 변수(cctv)들이 가질 수 있는 값이 여러개, 변수들이 가질 수 있는 모든 조합을 확인 1번 cctv의 방향 - 4 2번 cctv의 방향 - 2 3번 cctv의 방향 - 4 4번 cctv의 방향 - 4 5번 cctv의 방향 - 1 cctv가 볼 수 있는 방향이 최대 4이므로 4진법(0~3)을 사용해서 모든 방향의 조합을 확인 ex) 1번 cctv만 있는 경우 0(동), 1(북), 2(서), 3(남) -> 0~3까지 총 4개 방향 ex) 1번 cctv가 2대 있는 경우 00, 01, 02, 03, 10, 11, 12, 13, 20, 21, 22, 23.. 2024. 6. 7.