본문 바로가기

분류 전체보기198

5. 리스트 - 알고리즘 문제 11728번: 배열 합치기 (acmicpc.net) 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 알고리즘 문제 풀이 정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오. 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거나 같은 정수이다. 그림으로 정.. 2023. 7. 12.
4. 리스트 - 이중 연결 리스트 (Double Linked List) 1. Double Linked List 개념 Pointer가 앞뒤로 두 개가 들어가기 때문에 동일 데이터 양의 Single Linked List 보다 더 많은 용량이 필요하다. 데이터 추가 시 Tail Node로 접근해서 데이터 추가가 가능하다. 데이터 검색/삽입 시 인덱스가 Head보다 Tail에 가까우면 Tail로 타고 들어가서 검색/삽입이 가능하다. 따라서 Double Linked List는 더 많은 필요 용량에도 불구하고 성능 상 나름의 장점을 가지게 된다. (시간 복잡도로는 Single Linked List와 동일하게 O(n)이지만 연산 속도가 더 짧을 것으로 예상할 수 있다) 2. Double Linked List 구현 (JAVA) single Linked List와 마찬가지로 Node 기반으.. 2023. 7. 11.
3. 리스트 - 연결리스트(Linked List) 1. Linked List 개념 Node는 데이터 필드와 다음 Node를 가르키는 포인터 필드로 구성되어 있다. 가장 앞에 위치한 Node = Head 가장 뒤에 위치한 Node = Tail 이며 Tail은 가르킬 Node가 없으므로 Null을 가르킨다. 데이터 검색 시 인덱스 기반이 아니라 Node들의 Pointer를 통해 검색해 들어가야하므로, 검색의 시간 복잡도가 데이터의 개수와 같은 O(n)이다. 데이터 추가 시 Tail에 추가 Node를 넣어주므로 시간 복잡도가 역시 O(n)이다. 데이터 삽입 시 데이터를 배열 리스트처럼 뒤로 미뤄줄 필요는 없고, 포인터를 통해 연결해주면 된다. 다만, 데이터 삽입 될 곳을 찾아가는 과정 때문에 시간 복잡도가 역시 O(n)이다. 또한, Head에 앞쪽으로 데이터.. 2023. 7. 11.
2. 리스트 -배열(Array List) 1. ArrayList 구현 (JAVA) Java가 익숙치 않아서 조금 어려움이 있지만 주석을 달면서 개념을 이해해 가보자! package list; import java.util.Arrays; public class MyArrayList implements IList { private static final int DEFAULT_SIZE = 50; private int size; // 배열안에 들어가 있는 데이터 사이즈, 인덱스 역할 변수 private T[] elements; // 삽입할 데이터 변수 T[]은 임의의 데이터 유형을 받을 수 있도록함 public MyArrayList() { // 배열리스트 생성자 만들기 this.size = 0; this.elements = (T[]) new Objec.. 2023. 7. 10.
32. 외부 모듈(라이브러리) - Beautifulsoup, flask 혼공파 92~ 93강 (마지막) 1. 필요한 외부 모듈 찾기 # 기본 내장 모듈 (built-in module) ## math / sys / time ... # 외부 모듈(external module) # 터미널: pip install 모듈이름 으로 설치 ## pip install Flask (웹서버) ## pip install beautifulsoup4 (데이터 크롤링 - 분석) ## pip install tensorflow (인공지능) # 필요한 외부 모듈을 찾는 방법 # (1) 책에서 모듈 찾기 # 파이썬 웹 프로그래밍 : Django, Flask # 머신러닝 : scikit-learn, tensorflow # 스크레이핑 : requests, beautifulsoup # 영상 분석 : cv2, pi.. 2023. 7. 7.
31. 패키지(Package)의 기본 혼공파 91강 1. 패키지 기본 # 패키지 # 모듈의 규모가 커졌을 때 그 모듈을 나누는 방법 # 모듈은 "관심사를 기반으로 함수와 변수를 나누는 것" # 따라서 관심사의 규모가 커졌을 때 적절하게 나눠준다. # 1. 폴더 내부에 있는 모듈을 읽어 들이는 방법 School 폴더를 만들어 주고 그 안에 student / studentlist .py 파일로 모듈 작성 Main.py 에서 위의 모듈들을 불러서 사용한다. from school.student import Student from school.studentlist import StudentList sl = StudentList() sl.append(Student(100)) sl.append(Student(80)) sl.append(Student(85.. 2023. 7. 5.