본문 바로가기

환영합니다. 이 블로그 번째 방문자입니다.

CS

  (9)

[CS 스터디: JAVA] (9) 합병(병합)정렬 합병(병합) 정렬(Merge Sort) : 분할 정복 방법(큰 문제를 작은 문제 단위로 쪼개서 해결하고 병합하는 방식)을 통해 구현 : 원소를 쪼개고 나서(분할) 다시 합병시키면서(정복) 정렬해 나가는 방식 : 빠른 정렬 : Divid, Conquer and Combine ✓ 배열 A 가 있다고 가정 , 나누기를 시작할 인덱스 p, 마지막 인덱스 r (A[p..r]) ✓ Divide (나누기, 큰 문제 → 작은 문제) ① q(p 와 r 사이의 수) 인덱스를 기준으로 배열을 2개로 나눈다. (A[p..q], A[q+1, r]) ② 계속해서 나눠주다가(재귀) p == r 이 될 경우(base case) 배열의 크기가 1이 되므로 종료한다. ✓ Conquer (병합하기, 작은 문제 → 큰 문제) ① 크기가 1..
[CS 스터디: JAVA] (8) 거품 정렬, 선택 정렬, 삽입 정렬 정렬 : 순서 없이 배열된 있는 자료들을 그 값에 따라 순서에 따라 재배열하는 것 오름차순 정렬 (Ascending, 작은 → 큰) 내림차순 정렬 (Descending, 큰 → 작은) 숫자 1 2 3 4 ... 10 9 8 7 ... 영어 a b c ... z (알파벳 순) z y x ... a (알파벳 역순) 한글 ㄱ ㄴ ㄷ ... ㅎ ㅎ ㅍ ㅌ ... ㄱ 거품 정렬(Bubble Sort) : 가장 단순하고 직관적인 정렬 알고리즘 : 간단한 코드가 필요할 때에나 복잡도가 중요하지 않은 문제에서 사용 : 인접한 두 원소를 비교(Compare)해 조건에 맞지 않다면 두 원소를 바꿔줌 (Swap) : Compare and Swap Cycle ✓ 1번째 순회 (Step 0) ① 배열의 첫번째 인덱스(i = 0..
[CS 스터디 : JAVA] (5) 해시, Hash https://sennieworld.tistory.com/35?category=965527 [10] Hash Table, 해시 테이블 ✅ 해시 테이블이란 해시 테이블(Hash Table)은 키(Key)에 데이터(Value)를 저장하는 자료형이다. 파이썬에서 공부했던 딕셔너리와 비슷한 개념 정도가 아니라, 해시를 구현할 때 딕셔너리 타입을 사 sennieworld.tistory.com 👆 기본 개념 확인 → 선언 방식 -- java.util.Hashtable 패키지 import -- Hashtable 해시테이블명 = new Hashtable(); 으로 선언
[CS 스터디 : JAVA] (2) Stack & Queue & Heap 1️⃣ Stack : 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 구조 : 후입선출 > 가장 마지막에 들어온 원소가 가장 첫 번째로 나옴 : 스택의 가장 마지막으로 들어온 원소(맨 윗 원소)를 top이라고 함 : java.util.AbstractCollection 상속받음 → 선언 방식 -- java.util.Stack 패키지 임포트 → Stack의 특징 (1) LIFO 구조 (2) 재귀 함수를 호출할 때 사용 > 잘못된 재귀 호출 시(깊은 재귀에 빠져버릴 때) 나는 에러가 StackOverflowError(스택 꽉 차 있음) (3) 통용되는 메서드명이 존재함 > top, push, pop 등 (3) java.util.Stack 패키지에서 다양한 메서드를 제공(java.util.AbstractCollect..
[CS 스터디 : Java] (1) Array, ArrayList, LinkedList 1️⃣ Array, 배열 : 자료형의 집합 → 선언 방식 → 배열의 특징 (1) 배열의 길이(크기)는 고정 (2) 반복문과 인덱스를 통해 배열의 값 접근 (3) [배열이름.length] 를 사용해 배열의 길이 접근 2️⃣ ArrayList : 배열과 유사한 자료형의 집합 : List 자료형(인터페이스) 중 하나 → 선언 방식 -- java.util.ArrayList 패키지를 import 해서 사용 -- ArrayList 리스트이름 = new ArrayList(); → ArrayList의 특징 (1) 배열의 길이가 동적으로 변함 > 원하는 만큼의 값을 담을 수 있음 > 자동으로 크기가 늘어남 (2) 다양한 메서드를 제공 > CRUD 구현 가능 메서드 기능 메서드 명 반환 타입 원소 추가(C) add(E e..
XMLHttpRequest 나는 "자바스크립트 완벽 가이드 6판"을 참고하여 공부했는데, 새롭게 나온 "JavaScript: The Definitive Guide, 7th Edition" 원본에는 이렇게 써있다. GOODBYE XMLHTTPREQUEST The fetch() API replaces the baroque and misleadingly named XMLHttpRequest API (which has nothing to do with XML). 사실 나도 fetch() 쓴다. 그렇지만 XMLHttpRequest를 이해하면 HTTP 스크립팅 이해에 도움이 될 것 같아서 공부하려고 한다. HTTP(HyperText Transfer Protocol) : 웹 브라우저가 서버로부터 문서를 전송받거나 폼의 내용을 보내는 방법, 그..
DOM & BOM DOM이라는 단어를 처음 들었을 때가 xml 프로그래밍 수업을 들었을 때다. 아마 html을 배우면서 들었을 가능성이 매우 높지만, xml ㅇㅇㅇ교수님이 DOM구조를 매우 강조하셔서 더욱 기억에 남는 것일수도 있다. 간단한 html 파일을 한 번 만들어보자. 안녕 여러분s 사실 DOM구조가 궁금하지는 않아 그래도 똥멍청이가 될 수는 없잖아? 이 파일을 실행시켜 보면 아래와 같이 브라우저에 나타날 것이다. 이게 어떻게 가능할까. 우리는 고작 코드 덩어리 몇 줄을 적었을 뿐인데 어떻게 브라우저는 이것을 내가 쓴 대로 보여주는 것일까. 웹 브라우저(Chrome)는 HTML 코드를 해석해 화면을 통해 보여준다 (이것을 렌더링이라고 부른다). 브라우저는 HTML을 해석할 때, 오른쪽 그림과 같이 요소들을 트리형태..
Prototype, 프로토타입 👇🏻 참조 수준이 아니라 그대로 갖다가 글로 옮긴 거기 때문에 꼭 영상보기를 강추한돠 더보기 https://www.youtube.com/watch?v=wUgmzvExL_E 설명의 신... Prototype 프로토타입 | 제품이 출시되기 전의 원래의 형태 또는 전형적인 예, 기초, 표준 나는 프로젝트를 할 때 필요에 의해서 종종 UI를 디자인하는 경우가 있다. 디자인할 때, 피그마를 이용하는데 여기에서 Prototype이라는 단어가 굉장히 많이 쓰인다. UI 디자인은 웹 서비스나 어플을 출시하기 전에 사용자가 보게 될 화면을 만드는 것인데 이것을 '프로토타입을 작성한다'라고 한다. 그러면, 프로그래밍 언어에서 Prototype이란 무엇일까. 사실, 프로토타입은 거지같게도 자바스크립트에만 있는 특이한 문법이..
Semantic Markup, 시맨틱 마크업 Semantic 의미론적 Markup 태그를 사용하는 컴퓨터 언어(HTML과 같은) Semantic Markup 의미가 있는 태그를 사용하는 컴퓨터 언어 먼저 의미가 있는 태그란 무엇인지 알아보자 A : , B : , A,B는 둘 다 HTML의 태그이다. 하지만, 둘 중 하나는 semantic, 다른 하나는 non-semantic 요소이다. 어떤 것이 의미가 있는 태그일까? 정답은 B이다. 태그는 사용자에게 입력받는 "형식"이라는 것을 알 수 있고, 은 "표"를 의미한다는 것을 알 수 있다. 반면에 와 은 class나 id를 읽기 전까지는 어떤 컨텐츠를 가지고 있는지 알 수가 없다. 즉, 의미가 있는 태그는 컨텐츠의 목적과 내용을 알 수 있게 해주는 태그를 말한다. semantic tag를 사용하는 이유..