본문 바로가기

전체 글130

자료구조 연결 리스트(Linked List) 자바로 구현 1. 개요 연결 리스트는 데이터를 노드에 담아, 포인터로 연결해서 사용하는 자료구조다. Ex) 첫번째 노드의 포인터로 두번째 데이터를 찾을 수 있다. 두번째 노드의 포인터로 세번째 데이터를 찾을 수 있다. 그리고 연결 리스트는 배열 리스트와 다른 장단점이 있다. 장점 메모리 효율성이 좋다. (배열 리스트는 배열의 크기를 선언해야 생성할 수 있다. 연결 리스트는 데이터의 숫자만큼만 메모리를 사용하면 되니, 메모리의 낭비가 적다.) 포인터를 통해, 노드들이 연결되어 있으니 추가, 삭제가 용이하다. (포인터로 이어져 있으니 포인터만 수정해주면 된다.) 단점 원하는 데이터가 들어간 노드를 찾을 때까지, 포인터로 계속 탐색해야 하니 탐색 시간이 오래 걸린다 우선 이 LinkedList는 Head 노드를 더미로 한.. 2022. 2. 13.
8주차, IntelliJ 단축키 2, 테스트 코드, 리팩토링, 디버깅 1. 단축키 맥 // 윈도우즈 Run anything ctrl 2번 실행 에디터 실행 ctrl+shift+R // ctrl+shift+F10 실행 shift+R // shift+F10 종료 command+F2 // ctrl+F2 라인 수정 복사 command+D // ctrl+D 삭제 command+Delete // ctrl+Y 파라미터 정보 command+P // ctrl+P Quick Definition (정의 확인) option+space // ctrl+shift+i Quick Document (설명 확인) F1 // ctrl+Q Java Doc (API 문서를 주석으로 설명) 메소드 위에서 /**+Enter 하면 Java Doc 양식 생성 ***기능(action) 찾기*** shift+comman.. 2022. 2. 12.
8주차, IntelliJ 단축키1 1. 개요 프로그래밍을 할 때, 메모장에서 작업을 해도 상관은 없다. 그렇지만, 효율적으로 작업하기 위해선 IDE(Integrated Development Environment, 통합개발환경)이 필요하고 그 중 하나가 IntelliJ다. Pycharm도 같은 회사에서 제공하니 적용된다. 2. 단축키 맥 // 윈도우즈 프로젝트 창 포커스 command + 1 // Alt + 1 에디터 창으로 돌아오기 프로젝트 창에 포커스가 있을 때, 누르면 에디터로 돌아온다. Esc // Esc 프로젝트 창 미리보기 프로젝트 창에 포커스가 있을 때, 미리보기 Space // Space 에디터 창 키우기 Shift+Command+F12 // ctrl+shift+F12 에디터 창 이동 ctrl+tab // ctrl+tab 새.. 2022. 2. 12.
8주차, 자료구조 연결 리스트(Linked List) 1. 설명 Linked List 는 Node라는 객체로 구성되어 있다. 노드는 데이터를 저장할 수 있는 필드와 다음 노드를 가르키는 넥스트 포인터를 가지고 있다. 이 노드들이 다 연결된 형태를 Linked List 라고 한다. 가장 앞에 있는 노드를 헤드, 끝의 노드를 테일이라 한다. 테일의 넥스트 포인터는 Null이다. 검색의 경우, 인덱스가 없기에 랜덤 엑세스를 할 수 없다. N개의 노드를 가지고 있는 노드를 검색할 때, 시간복잡도는 O(N)이다. 헤드부터 테일까지 뒤져봐야 하기 때문이다. 추가의 경우, O(N)의 시간을 사용해서 테일까지 찾아가서 추가한다. 삽입의 경우, 중간에 끼워놓고 포인터만 바꿔주면 된다. 하지만 삽입할 곳 까지 찾아가야 하니 시간복잡도는 O(N)이다. 이전(Previous) .. 2022. 2. 12.