일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- jsp
- BFS
- sql
- 알고리즘
- 코테
- data structure
- 코딩테스트
- spring
- 크루스칼
- 자료구조
- dbms
- cloud computing
- Java
- python
- MVC
- Queue
- 암호학
- 가상컴퓨팅
- JDBC
- Algorithm
- generic class
- Stack
- JPA
- javascript
- dfs
- 자바의정석
- 클라우드 컴퓨팅
- 생성자
- 공개키 암호화
- DB
- Today
- Total
목록전체 글 (128)
PLOD
코딩테스트를 준비하거나 프로젝트를 구현할 때 데이터를 탐색하는 과정은 필수불가결하다 탐색은 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. 프로그래밍에서는 graph, tree등 자료구조 안에서 탐색을 하는 경우가 많이 생긴다. 자료구조란 데이터를 표현하고 관리하고 처리하기 위한 구조를 의미한다. 그 중에서 stack과 queue 구조는 BFS, DFS 알고리즘 문제를 해결하기 위해 필요한 자료구조이다. * stack stack은 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조이다. 입구 = 출구 = 1 이다. stack 배열은 append 함수를 사용하여 insert(push) 하고 pop 함수를 사용하여 delete 한다. * queu..
코딩테스트 문제를 풀면서 배열을 사용하면 정답 데이터들을 효과적으로 stack 할 수 있지만 문제의 요구사항에 맞춰 출력하기 위해서는 배열에 있는 데이터를 다듬어야 할 필요가 있다. 배열을 그대로 출력하게 되면 print(arr) >>>[ 원소,원소 ,원소 ,원소 ,원소 ] 이런 식으로 출력되게 되는데 코딩테스트의 정답(ex.SWEA)은 >>> 원소 원소 원소 원소 원소 이런식으로 출력해야 되는 경우가 많다. 아래처럼 for로 배열을 순회한 다음, print( , end = " ") 구문을 사용하면 아래처럼 출력할 수 있다.
Greedy Algorithm - 당장 좋은것 만 선택하는 그리디 그리디 알고리즘은 탐욕법이라고 불리며 , 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 뜻한다. 완전탐색과 달리 모든 경우를 살펴보지 않는다. 그렇기 때문에 완전탐색보다 빠르다. 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 "가장" 큰 순서대로, "가장" 작은 순서대로 와 같은 기준을 잘 잡는 것이 중요하다. 그리디는 문제를 해결할 수있는 가장 standard한 logic이지만, 말그대로 앞으로 남은 선택들을 고려하지 않고 현재 상황만을 고려하기 때문에 항상 최적해를 보장하지 않는다. 1. 거스름돈 문제 더보기 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 5..
상속(inheritance) 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다, 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리 할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 위 그림에서, 상위클래스(A)를래스를 parent class, base class, super class 라고 하고 하위에 있는 클래스(B)를 child class, derived class, subclass 라고 한다. 상속에서 자식 클래스와 부모 클래스는 is -a 관계가 성립한다. 반대로 부모 클래스와 자식클래스는 has-a 관계가 성립하게 된다. 자식클래스는 부모클래스에서 확장한다는 의미로 extends 키워드를 사용해 상속 관계를 ..
객체 : 객체 지향 프로그램의 대상, 생성된 인스턴스 클래스 : 객체를 프로그래밍 하기위해 코드로 정의해 놓은 상태 public class Student{...} 인스턴스 : new 키워드를 사용하여 클래스를 메모리에 생성한 상태, 생성된 인스턴스는 동적메모리 (heap memory) 에 할당된다. Student student = new Student(); 멤버 변수 : 클래스의 속성, 특성 메서드 : 멤버 변수를 이용하여 클래스의 기능을 구현하 함수 참조 변수 메모리에 생성된 인스턴스를 가리키는 변수 참조 값 : 생성된 인스턴스의 메모리 주소 값 1. 자료형 1) 기본 자료형 byte (-128~127) long (* 기호 : 1L) int short char boolean float double 1b..
메서드 사용의 장점 1. 코드 재사용: 메서드는 특정 기능을 캡슐화하므로, 필요할 때마다 그 기능을 다시 작성할 필요 없이 해당 메서드를 호출함으로써 코드를 재사용할 수 있다. 2. 코드의 가독성: 이름이 부여된 메서드는 코드가 수행하는 작업을 명확하게 나타내므로, 코드를 읽는 사람에게 추 가적인 문맥을 제공한다. 3. 모듈성: 큰 프로그램을 작은, 관리 가능한 부분으로 나눌 수 있다. 이는 코드의 가독성을 향상시키고 디버깅을 쉽 게 만든다. 4. 코드 유지 관리: 메서드를 사용하면, 코드의 특정 부분에서 문제가 발생하거나 업데이트가 필요한 경우 해당 메서 드만 수정하면 된다. 이렇게 하면 전체 코드 베이스에 영향을 주지 않고 변경 사항을 적용할 수 있다. 5. 재사용성과 확장성: 잘 설계된 메서드는 다..