728x90 반응형 전체 글257 [JAVA 자료구조] Doubly LinkedList (이중 연결리스트) Doubly LinkedList 단일 연결리스트와 달리 '이전 노드'를 가리키는 변수가 추가된 양방향 리스트 - 단일 연결리스트에 비해 검색(색인) 능력이 좋아진다. - 이전 노드를 가리키는 변수를 갖고 있기 때문에 tail부터 탐색할 수 있다. (좀 더 효율적) 더보기 package Interface_form; /** * * 자바 List Interface입니다. * List는 ArrayList, SinglyLinkedList, DoublyLinked에 의해 각각 구현됩니다. * * @author st_lab * @param the type of elements in this list * * @version 1.0 * */ public interface List { /** * 리스트에 요소를 추가합니다.. 2021. 8. 9. [JAVA 자료구조] Singly LinkedList (단일 연결리스트) Singly LinkedList 배열이 아닌 '노드'를 이용하여 여러 노드를 하나의 체인처럼 단방향으로 연결한 리스트 (위 그림에서 각각의 레퍼런스 변수는 다음 노드객체를 가리키고 있음) 이미지 출처 : https://st-lab.tistory.com/167 더보기 package Interface_form; /** * * 자바 List Interface입니다. * List는 ArrayList, SinglyLinkedList, DoublyLinked에 의해 각각 구현됩니다. * * @author st_lab * @param the type of elements in this list * * @version 1.0 * */ public interface List { /** * 리스트에 요소를 추가합니다. *.. 2021. 8. 5. [JAVA 자료구조] ArrayList ArrayList Object[] 객체 배열을 사용하는 자료구조로 사이즈를 정하지 않고 동적으로 활용할 수 있다. 리스트 계열 자료구조는 데이터 사이에 빈 공간을 허락하지 않는다. 더보기 package Interface_form; /** * * 자바 List Interface입니다. * List는 ArrayList, SinglyLinkedList, DoublyLinked에 의해 각각 구현됩니다. * * @author st_lab * @param the type of elements in this list * * @version 1.0 * */ public interface List { /** * 리스트에 요소를 추가합니다. * * @param value 리스트에 추가할 요소 * @return 리스트에서 .. 2021. 8. 4. [JAVA 자료구조] List Interface (리스트 인터페이스) 배열 vs List 인터페이스 공통점 1. 동일한 특성의 데이터타입을 묶는다. 2. 반목문내에 변수를 이용하여 하나의 묶음 데이터들을 모두 접근할 수 있다. 차이점 - 배열 1. 처음 선언한 배열의 크기는 변경할 수 없다. 정적 할당(static allocation) 2. 메모리에 연속적으로 나열되어 할당된다. 3. 인덱스에 위치한 하나의 데이터를 삭제하더라도 해당 인덱스는 빈공간으로 남는다. 차이점 - 리스트 1. 리스트의 길이가 가변적이다. 동적 할당(dynamic allocation) 2. 데이터들이 연속적으로 나열된다. (메모리에 연속적으로 나열되지않고 데이터들은 주소로 연결되어있음. ex.C의 포인터) 3. 데이터 사이에 빈 공간을 허용하지 않는다. 장점 1. 데이터의 크기가 정해져있을 경우 메.. 2021. 8. 4. [Algorithm] 정렬 알고리즘 요약 정리 선택정렬 - 정렬되지않은 데이터 중 순차적으로 가장 작은 수를 선택하고 교환해나가는 정렬 - 장점 : 정렬을 위한 비교 횟수는 많으나 교환 횟수는 상당히 적다는 것이 장점 (풀스캔) - 단점 : 데이터의 개수가 조금만 많아지더라도 아주 많은 연산을 해야하기때문에 오래걸림 - 시간복잡도 : O(N^2) - 연산법 : N*(N+1) / 2 public class sortAl { /** * 알고리즘 * * * 1. i = 0 * * * 2. i부터 N-1까지 가장 크거나 작은값을 찾는다. * * * 3. i와 가장 크거나 작은값을 교환한다. 동일한 값일 경우 교환하지 않는다. * * * 4. ++i * 5. 2부터 다시 반복한다. */ int value[] = {5, 3, 8, 2, 10, 9, 4, 1}; .. 2021. 8. 1. [Algorithm] 시간 복잡도 & Big-O표기법 시간복잡도(Time Complexity) 특정 알고리즘이 문제를 해결하는데 걸리는 시간 정확한 값을 산출하는 것이 아니라 근사치를 계산한다. 점근적 표기법 - 시간복잡도를 나타내는데 사용됨 1) 최상의 경우 : 오메가 표기법(Big-Ω Notation) 최적의 입력을 한 상태에서 작업을 완료하는데 가장 빠른 시간 2) 평균의 경우 : 세타 표기법 (Big-θ Notation) 여러가지 다른 경우의 수를 입력하여, 총실행시간을 계산하고 시행횟수로 나눈다. 3) 최악의 경우 : 빅오 표기법 (Big-O Notation) 최악의 입력을 한 상태에서 작업을 완료하는데 가장 느린 시간 -> 평균인 세타 표기법을 사용하면 좋겠지만 평가하기가 까다로워 최악의 경우인 빅오를 많이 사용한다. Big-O 표기법 - 점근적.. 2021. 7. 30. [Algorithm] 공간 복잡도 공간복잡도(Space Complexity) 프로그램이 얼마나 많은 공간(메모리)를 차지하느냐를 분석하는 방법 공간복잡도 빅-오 계산법 1) 일반적으로 공간이 하나씩 생성되는 것을 1이라고 표현함 아래의 공간복잡도는 O(1) int a = 5; 2) 반복문에서의 지역변수 사용시 n값에 상관없이 공간복잡도는 O(1) 반복문이 N번만큼 반복하여도 for문 안에서의 지역변수이므로 다른 것에 영향 X int f(int n) { int i = 0; int result = 1; for(i = 1; i 1) return n * factorial(n -1); else return 1; } 프로그램에 필요한 공간은 고정, 가변 공간으로 나눌 수 있다. 시간적인 측면을 무시하고 공간복잡도만을 생각한다면 고정 공간보다는 가변.. 2021. 7. 30. [Network] NFS설정 - Windows10 & Linux(Ubuntu) 네트워크 드라이버 연결 (2) / 네트워크 드라이브가 연결이 안되는 오류 해결 - 방화벽 환경 https://prinha.tistory.com/entry/Network-NFS%EC%84%A4%EC%A0%95-Windows10-LinuxUbuntu-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-%EC%97%B0%EA%B2%B0 [Network] NFS설정 - Windows10 & Linux(Ubuntu) 네트워크 드라이버 연결 (1) NFS (Network File System) 원격지 PC의 파일을 로컬 PC에 있는 것처럼 사용할 수 있는 파일시스템 NFS_Server가 파일을 공유하면 NFS_Client가 공유된 디렉토리를 마운트하여 파일을 사용하는 방식 *보안을 크 prinha.tistory.com 저번에 구.. 2021. 7. 30. [Network] 인터넷 연결 진단 방법 - ping 테스트 Ping(Packet Internet Groper) 컴퓨터 네트워크 상태를 점검, 진단하는 명령어 ping을 보내는 대상 컴퓨터에 일정 크기의 패킷을 보낸 후 ping에 대해 응답하는 메시지를 보내면 이를 수신받아 대상 컴퓨터가 동작하는지, 네트워크 상태가 정상적인지 분석할 수 있다. (ex. 공유기에 ping을 날려 주고받은 패킷의 손실률을 파악하여 인터넷의 연결 상태를 진단할 수 있음) ping ip주소 ping 192.168.0.1 1. PC -> 공유기 연결 테스트 공유기 IP 주소 : ipconfig명령어를 통해 '무선 LAN 어댑터 Wi-Fi'의 기본 게이트웨이 IP주소를 얻을 수 있음 2. 공유기 -> pc 연결 테스트 고정적인 IP주소를 가진곳으로 테스트 SK DNS : 219.250.36.. 2021. 7. 30. [Windows] ICMP허용 - ping 명령창에서 ping 명령어를 사용하여 네트워크 통신체크를 점검한다. 그러나 대부분의 windows서버에서는 ping응답을 허용하지 않는다.(보안문제) ping응답을 허용하기 위해서는 해당 서버의 ICMP 수신 패킷의 대한 응답을 허용해야 한다. ICMP(Internet Control Message Protocol) : 인터넷 통제 메시지 프로토콜 ICMP 방화벽 정책 허용 (실행창 -> firewalld.cpl -> windows방화벽 고급설정) 1. 파일 및 프린터 공유(에코 요청 - ICMPv4-In) 인바운드 규칙 사용 2. 정책의 속성으로 들어가 특정 IP의 ICMP만 허용 모든 네트워크의 ICMP를 모두 허용한다면 보안적으로 취약하다. - Ping Flooding : ping 명령어를 통한 IC.. 2021. 7. 30. [Linux] Ubuntu - MySQL 데이터베이스(DB) 백업/복원 ## 백업과 복원 모두 지정 경로로 이동 후 명령 실행 1. DB백업 sudo mysqldump -uroot -p DB명 > 저장할파일이름.sql 2. DB복원 sudo mysql -uroot -p DB이름 < 파일이름.sql 2021. 7. 30. [Linux] VMware Ubuntu 네트워크 연결 실패 오류 VMware로 구축한 리눅스(우분투)서버 네트워크에 문제가 생겼다. 인터넷 연결이 안되고 IP주소를 받아오지못했다. sudo dhclient 위 명령어 한줄이면 IP가 자동으로 할당되어 ens33이 정상적으로 동작한다. (dhcp서버로부터 아이피주소를 할당받는 명령어) 2021. 7. 29. 이전 1 2 3 4 5 6 7 8 ··· 22 다음 728x90 반응형