일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- javascript
- 자료구조
- til
- dfs
- spring
- 암호학
- 개발자취업
- 코테
- JPA
- Algorithm
- Java
- 코딩테스트
- 알고리즘
- BFS
- 생성자
- DB
- 자바의정석
- 크루스칼
- 코딩테스트준비
- generic class
- python
- jsp
- 가상컴퓨팅
- 99클럽
- sql
- Queue
- js
- 공개키 암호화
- 항해99
- dbms
- Today
- Total
목록분류 전체보기 (137)
PLOD
접근 지정자는 접근 제어자라고도 불리며, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다. 클래스나 멤버에서 접근 제어자를 사용하는 이유는 클래스의 내부에 선언된 데이터를 보호하기 위해서이다. 데이터가 유효한 값을 유지하도록, 또는 비밀번호와 같은 데이터를 외부에서 함부로 접근하지 못하도록 하기 위해서는 외부로부터 접근을 제한하는 것이 필요하다. 이것을 데이터 감추기(data hiding)이라고 하고 OOP에서 캡슐화에 해당한다. 자바의 접근 지정자는 클래스 내에서 멤버의 접근을 제한하는 역할을 한다. 접근지정자의 종류는 private , public, protected, default가 있다. 한정자 클래스 내부 동일 패키지 하위 클래스 그 외의 영역 public ● ● ●..
Graph그래프는 정점(데이터)과 간선(데이터 간의 거리)으로 이루어진 자료구조이다. 그래프는 BFS,DFS 같은 순회 알고리즘과 Djikstra 같은 최소경로알고리즘을 구현할 때 알아야 될 필수 자료구조이다.그래프는 정점(vertex,node)와 노선인 간선(edge)으로 이루어져 있다. 그래프는 간선의 방향성을 기준으로 나뉜다.그래프는 방향 그래프(Directed graph)와 무방향 그래프(Undirected graph : 양방향 그래프)가 있다. 그래프는 순환성을 기준으로 나눌 수도 있다. 순환 그래프와 비순환 그래프가 있다.인접 행렬을 통해서 그래프를 만들기인접 행렬2차원 배열을 사용하여 그래프의 정점들 간의 연결 관계를 표현행렬의 (i, j)위치에 간선의 유무를 나타내며,무방향 그래프의 경우 ..
1. BFS(Breadth - First -Search) : 너비우선탐색https://www.codecademy.com/article/tree-traversal Tree Traversal: Breadth-First Search vs Depth-First Search | CodecademyLearn about two standard tree traversal algorithms: breadth-first search and depth-first search.www.codecademy.com 시작 노드에서 인접 노드를 모두 방문하고 방문한 노드에서 인접 노드를 모두 방문하는 것을 반복하게 된다. BFS를 이용하게 되면 가중치가 없다는 가정 하에 처음 방문한 노드들의 집합이 최단 경로가 없다.최대한 넓게 ..
코딩테스트를 준비하거나 프로젝트를 구현할 때 데이터를 탐색하는 과정은 필수불가결하다 탐색은 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. 프로그래밍에서는 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..