STUDY
-
[Java] 빠른 입출력을 위한 BufferedReader, BufferedWriter, StringTokenizer, StringBuilderSTUDY/Algorithm 2021. 3. 16. 13:55
BufferedReader / BufferedWriter BufferedReader와 BufferdWriter는 버퍼를 사용하여 읽기와 쓰기를 하는 함수이다. 버퍼를 사용하지 않는 입력은, 키보드의 입력이 키를 누르는 즉시 바로 프로그램에 전달된다. 반면 버퍼를 사용하는 입력은, 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송한다. 버퍼가 가득 차거나 혹은 개행 문자가 나타나면 버퍼의 내용을 한 번에 프로그램에 전달한다. 한번 버퍼를 거쳐 출력되는 것보다, 키보드의 입력을 받는 즉시 출력하는 것이 더 빠른 것이 아닌가 생각할수 있다. 하드디스크는 속도가 느리다. 그리고 외부 장치(키보드, 모니터 등)와 데이터 입출력도 생각보다 시간이 오래 걸린다. 그렇기 때문에 키보드의 입력이 있을 때마다 바로 이동..
-
[정렬] 기본 정렬(선택, 버블, 삽입), 고급 정렬(병합, 퀵, 힙), 계수정렬STUDY/Algorithm 2021. 3. 14. 22:04
- 기본 정렬 알고리즘 선택 정렬 버블 정렬 삽입 정렬 - 고급 정렬 알고리즘 병합 정렬 퀵 정렬 힙 정렬 - 계수 정렬 기본 정렬 알고리즘(선택, 버블, 삽입 정렬) 1. 선택 정렬(Selection Sort) 선택 정렬은 가장 간단한 정렬 알고리즘 중 하나로, 입력에 민감하지 않은 정렬이다. 또한 선택 정렬은 항상 일정한 시간 복잡도를 가지는 정렬 알고리즘이기도 하다. - 선택 정렬 알고리즘 ① 배열 A[1..n]에서 가장 큰 원소를 찾는다. ② 가장 큰 원소와 끝자리에 있는 A[n]과 자리를 바꾼다. -> 여기서 맨 뒷자리로 옮긴 원소는 자기 자리를 찾은 것이므로 이제 신경쓰지 않아도 된다. ③ 나머지 원소 n-1개에 대해서도 동일한 작업을 반복한다. - 선택 정렬 pesudo code select..
-
[CSS] CSS의 모든 것 - (4) Float,Combinator, Navigation Bar, DropdownSTUDY/HTML.CSS.JS 2021. 3. 14. 19:06
CSS Float CSS Layout - float and clear float 속성은 웹 페이지에서 이미지를 어떻게 뜨워 텍스트와 함께 배치할 것인지 지정하는 속성이다. float 속성이 가질 수 있는 값은, left : 왼쪽에 부유하는 블록 박스를 생성한다. 페이지 내용은 박스 오른쪽에 위치하고, 위에서 아래로 내용이 흐른다. right : 오른쪽에 부유하는 블록 박스를 생성. 페이지 내용은 박스 왼쪽에 위치하고, 역시 위에서 아래로 내용이 흐른다. none : Default. 요소들이 부유하지 않는다. inherit : 부모 요소에서 상속 E.g. img { float: none;} CSS Layout - clear and clearfix clear 속성은 부유시킨 이후의 문서의 흐름을 제거하기 위..
-
[CSS] CSS의 모든 것 - (3)Link, List, Table, Display, Width, Positon, OverflowSTUDY/HTML.CSS.JS 2021. 3. 13. 19:28
CSS Links Lists Tables Layout- Display Property Layout - width and max-width Layout - The position Layout - Overflow CSS Links Link도 CSS 속성으로 스타일을 지정할 수 있다. a : link - 방문하지 않은 일반 링크 a : visited - 방문한 링크 a : hover - 사용자가 링크에 마우스를 올려둘 때 a : active - 클릭하는 순간의 링크 ex) a:link { color: red; } a:visited { color: green; } text-decoration 속성 : 링크의 밑줄을 제거할 때 사용하는 속성 Syntax text-decoration: none; background..
-
[알고리즘]재귀함수STUDY/Algorithm 2021. 3. 11. 11:57
재귀 함수란? 문제 해결을 위해, 원래 범위의 문제를 더 작은 문제로 쪼개 하위문제를 해결함으로써, 문제를 해결해 나가는 방식을 말한다. 재귀 함수를 사용할 때 장점은, 코드가 간결하고, 오류 수정이 용이하다는 것이다. 단점은, 코드를 이해하기 어렵고, 수많은 중복호출이 발생해 저장 공간을 많이 필요하다는 것이다. 예시를 살펴보자. int recursiveSum (int n) { if(n == 1) return 1; return n + recursiveSum(n - 1); } 이 recursiveSum 함수는, 1부터 n까지의 합을 구하는 함수를 재귀 호출을 이용해 구현한 것이다. n = 5일 때, 아래와 같이 동작한다. 모든 재귀함수는 if (n == 1)과 같이, 더이상 쪼개지지 않는, 최소한의 작업..
-
[CSS] CSS의 모든 것 - (2) Padding, Height, Width, Box Model, Outline, Text, Fonts, IconsSTUDY/HTML.CSS.JS 2021. 3. 8. 19:31
CSS Padding CSS Height and Width CSS Box Model CSS Outline CSS Text CSS Fonts CSS Icons CSS Padding Padding은 테두리안에 정의된 요소의 콘텐츠 주위에 간격(공간)을 만드는데 사용한다. CSS에서 Padding은 네가지 속성이 있다. padding-top padding-right padding-bottom padding-left 속성의 값을 표현하는 방법은 세가지가 있다. length - specifies a padding in px, pt, cm, etc. % - specifies a padding in % of the width of the containing element inherit - specifies that ..
-
[CSS] CSS의 모든 것 - (1) CSS, Selector,Background, Border, MarginSTUDY/HTML.CSS.JS 2021. 3. 8. 15:22
CSS CSS Selector How To Add CSS CSS Comments CSS Background CSS Border CSS Margin CSS는 Cascading Style Sheets의 약자로, 웹 페이지의 스타일에 사용하는 언어이다. CSS는 웹 페이지의 디자인 뿐만 아니라 레이아웃, 다양한 스크린 사이즈에 따른 화면에 변화 등을 모두 조절할 수 있다. CSS를 사용하면 HTML만을 사용하는 것보다 훨씬 간편해진다. CSS를 통해 수많은 웹 페이지들의 레이아웃을 한번에 컨트롤 할 수 있기 때문이다. CSS Syntax Selector : 스타일을 적용할 HTML 요소를 가리킨다. Declaration : 하나 이상의 선언이 포함된다. 여러개의 선언들은 세미콜론(;)을 이용해 구분한다. 선언..
-
[HTML] HTML의 모든 것 - (마지막) HTML 스타일와 코딩 가이드STUDY/HTML.CSS.JS 2021. 3. 6. 20:58
1. 항상 Document Type을 명시한다. 2. Element(요소) 이름에는 소문자를 사용한다. HTML은 요소 이름에 대소문자를 모두 허용하기는 한다. 하지만, 대소문자를 혼용해서 사용하는 것은 보기 좋지 않고, 통상적으로 개발자들은 소문자 이름을 사용하고, 소문자가 보기에도 작성하기에도 쉽기에 소문자 사용을 권장한다. 3. 모든 Element를 닫아라. HTML에는 태그와 같이 종료 태그를 필수로 하지 않는 태그들이 있다. 그러나 이런 태그들이라도 종료 태그를 명시하는 것을 권장한다. 4. Attribute(속성) 이름에는 소문자를 사용한다. 태그들의 이름을 소문자로 작성하는 것과 동일한 이유이다. 5. 항상 Attribute(속성)의 Value(값)을 큰 따옴표로 감싼다. HTML에서는 따옴..