분류 전체보기 (330) 썸네일형 리스트형 힙 정렬 힙 정렬은 선택 정렬을 응용한 알고리즘이다. 힙을 사용하여 정렬한다. 여기서 '힙'은 '부못값이 자식값보다 항상 크다'라는 조건을 만족하는 완전이진트리이다. 모든 부모와 자식의 관계는 항상 부모값>= 자식값 힙정렬은 '가장 큰 값이 루트에 위치'하는 특징을 이용하는 정렬 알고리즘이다. - 힙에서 가장 큰 값인 루트를 꺼냅니다 - 루트 이외의 부분을 힙으로 만듭니다 이 작업을 반복한다. import java.util.Arrays; public class HeapSort { static void swap(int[] a, int idx1, int idx2){ int t = a[idx1]; a[idx1] = a[idx2]; a[idx2] = t; } public static void main(String[] a.. 병합정렬 병합 정렬 알고리즘 배열의 요솟수가 2개 이상인 경우 배열의 앞부분을 병합 정렬로 정렬합니다 배열의 뒷부분을 병합정렬로 정렬합니다 배열의 앞부분과 뒷부분을 병합합니다 배열 병합의 시간복잡도는 O(n), 병합정렬까지 생각하면 전체 시간복잡도는 O(n log n). + 안정적인 정렬방법이다. 실습 public class MergeSort { static int[] buff; // 작업용 배열 // a[left] ~ a[right] 를 재귀적으로 병합정렬 static void __mergeSort(int[] a, int left, int right){ if(left < right){ int i; int center = (left + right) / 2; int p = 0; int j = 0; int k = l.. 퀵정렬 퀵정렬은 요솟수가 많은 배열을 정렬하는 경우 효과적이다. O(n log n) ~ O(n²)의 시간복잡도를 가진다. 재귀적인 퀵 정렬 구현 left < pr, pl < right 는 모두 그룹의 요솟수가 1개일때는 성립하지 않는 조건임. 이 조건은 요솟수가 2개 이상인 그룹을 나눌 때 필요하다. import java.util.Scanner; public class QuickSort { static void swap(int[] a, int idx1, int idx2){ int t = a[idx1]; a[idx1] = a[idx2]; a[idx2] = t; } // 나눌 구간의 맨 앞 요소(left), 맨 뒤 요소(right) static void quickSort(int[] a ,int left, int r.. 정렬 알고리즘 정렬 알고리즘의 핵심요소 : 교환, 선택, 삽입 1. 버블 정렬 : 이웃한 두 요소의 대소 관계를 비교하고 필요에 따라 교환을 반복한다. (단순 교환 정렬) 요소수가 n인 경우 변수 i값을 0부터 n-2까지 1씩 증가시키며 패스를 n-1번 수행한다? (n-1번 패스가 수행되면 마지막 요소는 끝에 놓임) for(int i=0; i 안정적이지 않다.(값이 3인 요소가 두개가 있는 경우 요소의 순서가 바뀔 수 있음) 아직 정렬하지 않은 .. java 8퀸 문제 어느 두 개의 퀸 중 하나라도 같은 열, 같은 행, 같은 대각에 놓이지 않도록 8×8 체스판에 8개의 퀸을 놓는 문제. 1. 같은행, 같은 열에 겹치지 않도록 flag를 이용하였음(분기한정법이용) public class QueenB { static boolean[] flag = new boolean[8]; static int[] pos = new int[8]; static void print(){ for (int i = 0; i < 8; i++) System.out.printf("%2d",pos[i]); System.out.println(); } static void set(int i){ for (int j=0; j Elastic Beanstalk 서버 시간 변경 배포해놓은 프로젝트를 테스트하던 중 서버 시간이 맞지 않아서 SSH 로 서버 시간을 설정해보겠습니다. CICD설정해놓은 yml 파일에 time 설정이 있는데 왜 안되는지 모르겠습니다. 일단 서버 시간변경이 급하니까 본론으로 들어가겠습니다. MobaXterm으로 ec2 퍼블릭ip4 주소를 이용해서 SSH로 접속한다. sudo rm /etc/localtime $ sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime 그리고 sudo vi /etc/sysconfig/clock 을 해서 Zone 값을 "Asia/Seoul" 로 바꿔주었습니다. sudo reboot를 했는데요, 시간은 그대로 입니다. ㅎㅎ.. 이미 환경설정 파일을 첨부해서 배포하는 방법도 시도해보았지.. AWS Elastic Beanstalk 500 에러 해결하기 도서관리 프로그램 프로젝트를 CI/CD 구축하기 위해서 Elatic Beanstalk로 먼저 배포 작업을 하던 중. 배포한 프로젝트가 home.html은 잘 로드되는데 다른 메뉴만 누르면 500에러가 발생했다....ㅠㅠ 그래서 Elatic Beanstalk에서 주는 로그 파일을 뜯어봤다. 환경에서 로그 메뉴를 눌러서 현재 서버의 로그를 받아 볼 수 있다. 내가 참고한 로그는 /var/log/web.stdout.log 이다. 무슨 로그들이 모이는지는 나중에 알아봐야겠다. Dec 20 05:27:08 ip-172-31-4-33 web[10317]: 2023-12-20T05:27:08.154Z ERROR 10317 --- [nio-5000-exec-7] o.a.c.c.C.[.[.[/].[dispatcherSe.. AWS Elastic Beanstalk 502에러 해결하기 CICD 환경 구성을 위해 Elastic Beanstalk를 통해 배포를 하던 중. 업로드 후 도메인 주소로 이동했을때, 502 Bad GateWay라는 표시가 나왔습니다. 이벤트창에는 environment health has transitioned from info to no data. none of the instances are sending data. 라는 말이 찍히고요... 알고보니 AWS Elastic Beanstalk은 기본적으로 5000 포트를 사용하기 때문에, 포트를 5000으로 변경해서 연결해주어야한다네요. 환경 구성 > 업데이트, 모니터링 및 로깅 > 편집 > 키에 SERVER_PORT 값에 5000 를 추가해주었더니 해결이 되었습니다. port번호로 해결이 안되는경우) 사실 저는 이.. 이전 1 ··· 7 8 9 10 11 12 13 ··· 42 다음