。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

CS 36

알고리즘 - 정렬 알고리즘

자세히 공부하기 전 특성 정리 정렬 알고리즘 ① 비교 기반 정렬 알고리즘 종류 특징 평균 시간 복잡도 버블 정렬 인접한 두 수를 비교해 정렬 O(n2) 선택 정렬 정렬되지 않은 배열에서 최솟값을 선택해 정렬 삽입 정렬 정렬된 배열에서 탐색 중인 요소 삽입 합병 정렬 * 분할 정복 기분 알고리즘 * 배열을 1 이하 크기로 분할 후 합병 과정에서 정렬 O(n log n) 퀵 정렬 * 분할 정복 기반 알고리즘 * 피봇을 선택해 피봇을 기준으로 작은 수의 배열과 피봇보다 큰 수의 배열로 분할하여 정렬 * 피봇에 따라 시간 복잡도가 달라질 수 있음 힙 정렬 * 힙 기반 정렬 알고리즘 * 최대 힙을 이용해 오름차순 정렬, 최소 힙을 이용해 내림차순 정렬 * 피봇 : 배열에서 선택한 하나의 데이터 원소 ② 비교 기반..

CS 2023.12.24

[면접] static 변수

=> 보통 프로그램 전반에 걸친 전역변수나 공용으로 사용해야 할 변수를 필요로 할 때 사용됨 static 변수, 메서드 특징 클래스가 메모리에 로드될 때, 스태틱(static) 메모리 영역에 생성 인스턴스를 생성하지 않고도 사용할 수 있음. 클래스당 하나만 생성되며, 클래스 멤버라고도 부름. (static 메서드가 해당 클래스로부터 생성된 여러 인스턴스들 간에 공유되며, 클래스 자체에 속하는 멤버라는 의미) static 메소드 안에서는 static 멤버들만 사용할수 있고, 인스턴스 멤버는 사용할 수 없음. *인스턴스 "인스턴스"는 객체지향 프로그래밍(OOP)에서 클래스의 구조를 기반으로 실제로 메모리에 할당된 것을 가리킵니다. 클래스는 객체를 만들기 위한 템플릿 또는 설계도로 볼 수 있고, 이 클래스를 ..

CS 2023.12.23

[면접] 오류와 예외

✔️ 오류(Error) - 오류(Error)는 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제 - 미리 기대한 값을 얻을 수 없거나 혹은 어떤 상태가 일관적이지 못한 상황 ✔️ 예외(Exception) - 개발자가 구현한 로직에서 발생한 실수나 사용자의 영향에 의해 발생 - 미리 예측하여 방지할 수 있기에 상황에 맞는 예외처리(Exception Handle)를 해야 한다. 예외(Exception)과 오류(Error)의 차이점 어떤 값이나 상태를 미리 파악할 수 있는가는 점이다. 어떤 값을 얻을 수 있거나 어떤 문제가 발생할 상황을 미리 예상해서 별도의 루틴으로 처리하면 예외(Exception), 예상한 어떤 값을 얻을 수 없거나 어떤 상황이 일관적이지 않다면 오류(Error). 오..

CS 2023.12.22

[면접] Java Collection - List, Set, Map

Collection(컬렉션) Java에서 Collection(컬렉션)이란 데이터의 집합, 그룹을 의미 JCF(Java Collection Framework)는 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집을 의미 Collection 주요 인터페이스 List: 순서가 있으며, 데이터(값) 중복 허용 Set: 순서가 없으며, 데이터(값) 중복을 허용하지 않음 Map: Key&Value 구조, Key는 중복을 허용하지 않으며, Value(값)는 중복을 허용 List 입력 순서를 유지, 데이터의 중복을 허용 인덱스를 통해 저장 데이터에 접근이 가능 List 인터페이스의 주요 구현체 ArrayList 단반향 포인터 구조 데이터 순차적 접근(조회)가 빠름 LinkedList ..

CS 2023.12.22

4.3 비선형 자료구조

비선형 자료구조 : 하나의 데이터 뒤에 N개의 데이터가 이어질 수 있는 1:N , N:N 구조로 데이터가 나열되는 자료구조 4.3.1 그래프 데이터를 포함하는 정점(vertex)(=노드)과 정점을 잇는 간선(edge)으로 구성된 자료 구조 인접(adjacent): 두 정점이 간선으로 연결되어 있으면 인접하다고 표현 차수(degree): 정점에 연결된 간선의 수 진입 차수(in-degree): 해당 점점으로 향하는 간선의 수 진출 차수(out-degree): 해당 점점에서 나가는 간선의 수 경로(path): 한 정점에서 다른 정점으로 이어지는 정점들의 리스트 경로 길이(path length): 경로를 구성하는 간선의 수 단순 경로(simple path): 모두 다른 정점으로 구성된 경로 사이클(cycle)..

CS 2023.12.18

4. 자료구조

4.1 복잡도 알고리즘을 수행하면 시간과 메모리 공간 드으이 자원이 사용되며 시간 복잡도는 알고리즘의 실행 시간을 정량화하는 것 공간 복잡도: 실행하는 데 필요한 메모리 사용량을 정량화 복잡도 표기법: 빅오 표기법 입력 값(n)에 대한 수식에서 최고차항을 기준으로 알고리즘이 수행되는 최악의 시간 복잡도를 표현 최고차항을 기준으로 표현하는 이유는 연산의 수가 극한에 수렴할 때 나머지 항이 복잡도에 미치는 영향은 미미하기 때문이다. 4.2 선형 자료구조 연속적으로 데이터가 나열되는 자료구조를 나타낸다. 배열, 리스트, 스택, 큐 4.2.1 배열 정해진 크기만큼 데이터가 일렬로 저장되는 정적 자료구조 각 데이터를 배열의 요소라고 하며 데이터를 가리키는 번호를 인덱스라고 한다. 접근: 걸리는 시간 복잡도 O(1..

CS 2023.12.18

3.4 조인

조인 여러 테이블을 합쳐 원하는 데이터를 얻는 작업 테이블을 하나로 합치려면 각테이블에서 공통된 열을 이용함. 조인 연산자 ON 조인 연산에 대한 조건절을 작성할 때 사용하는 연산자로, 각 테이블에서 어떠한 속성을 사용해 연산을 수행할지 나타낸다. USING 조인 연산을 하려는 테이블에서 속성명이 동일할 때 USING 연산자 뒤에 공통되는 속성명만 작성해 조건을 간단하게 적을 수 있다. WHERE 테이블에서 원하는 데이터를 조회하기 위한 조건절을 작성할 때 사용하는 연산자. IN WHERE 절과 함께 사용하며, IN 연산자 뒤에 나오는 조건에 하나라도 해당하는 값을 검색할 수있다. BETWEEN 특정 범위에 속하는 데이터를 조회할 . 때사용하는 연산자, > < 처럼 값을 비교하는 데 사용 LIKE 특정 ..

CS 2023.12.16

3.2 관계형 데이터 베이스에서 사용하는 개념

키 데이터베이스에서 튜플을 구분하기 위한 속성 또는 속성의 집합 유일성: 하나의 . 키값으로 튜플을 식별할 수 있는 특성 최소성: 튜플을 식별하는 데 필요한 속성만으로 이루어져 있는 특성 DBMS(데이터베이스 관리 시스템)의 다섯 가지 키 슈퍼 키: 튜플을 식별할 수 있어서 유일성은 만족하지만 후보 키와 달리 최소성을 만족하지 않아도 된다. 후보 키: 튜플을 식별할 수 있는 유일성과 필요한 속성만으로 구성되는 최소성을 만족해야한다. 기본 키: 후보 키 중에서 메인이 되는 키로 NULL 값을 가지면 안 된다. 대체 키: 후보 . 키중.기본 키를 제외한 키 외래 키: 다른 테이블의 기본 키를 참조하는 키 무결성 데이터베이스에 저장된 데이터와 실제 데이터가 일치하는 정확성과 데이터가 일정하게 유지되는 일관성을..

CS 2023.12.15

앱서버 웹서버

요청자가 데이터를 가지고 있는 자(웹서버)에게 request(요청)를 함 요청자의 위치를 알려주는 ip주소를 보내야 하고 무엇을 필요로 하는지 알려주는 url(자원을 요청하는 주소)이 있어야 함. ex) http:~/a.html // http:~/b.avi 응답자(웹서버)는 요청자의 ip주소를 토대로 response(응답)해줌. 웹서버는 주로 아파치를 사용하며 Static 자원(정적인 자원)을 지원함 JSP 혹은 자바코드를 요청하면 아파치는 자바코드를 이해하지 못 하기 때문에 톰켓 추가 톰켓이 JSP → 자바 → html 문서로 변환 → 아파치가 응답 아파치(Apache)는 웹 서버 소프트웨어 중 하나로, 가장 널리 사용되는 오픈 소스 웹 서버 중 하나입니다. Apache HTTP Server라고도 불리..

CS 2023.12.12