일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 고 배열
- flask
- 하둡
- 백준 파이썬
- 백준
- golang
- MongoDB Realm
- 몽고디비 렘
- http 완벽가이드
- hadoop
- 자바
- http 개념
- 백준 12761번
- 도메인 주도 개발
- ddd
- 백준 사이트
- 12761번 돌다리
- 정렬
- 백준 12761
- String 함수
- 자바 디자인패턴
- 12761 돌다리
- golang struct
- 우분투
- go
- 도메인 주도 개발 시작하기
- 파이썬
- domain driven develop
- 트리 순회
- 자바 디자인 패턴
- Today
- Total
목록자바 (6)
개발바닥
정렬이란? 정렬은 대소 관계에 따라 데이터 집합을 일정한 순서로 줄지어 늘어서도록 바꾸는 작업을 말합니다. 정렬은 두가지 분류로 나눌 수 있습니다. 오름차순 정렬(ascending order)과 내림차순 정렬(descending order) 오름차순 정렬은 작은 값이 앞으로 오도록 정렬하는 것이고 내림차순 정렬은 큰 값이 앞으로 오도록 정렬하는 것입니다. 앞으로 다루고자 하는 정렬은 버블 정렬 , 삽입 정렬, 셸 정렬 ,퀵 정렬, 병합 정렬, 힙 정렬, 도수 정렬 총 7가지 정렬을 나누어서 다루겠습니다. 버블 정렬(bubble sort)이란? 이웃한 두 요소의 대소 관계를 비교하여 교환을 반복합니다. 버블 정렬은 2중 반복문으로 간단하게 구현할 수 있습니다, 오름차순으로 정렬시 아래 그림과 같이 동작한다..
하노이의 탑이란? 작은 원반이 위에, 큰 원반이 아래에 위치할 수 있도록 원반을 3개의 기둥 사이에서 옮기는 문제입니다. 모든 원반의 크기는 다르며, 처음에는 모든 원반은 첫번째 기둥에 쌓여져 있습니다. 모든 원반을 세번째 기둥으로 옮기면 되는 문제로 원반은 1개씩만 옮길 수 있고 큰 원반을 작은 원반 위에 쌓을 수 없습니다. 기둥 번호를 1,2,3번으로 나타낼때 기둥 번호의 합이 6이므로 시작 기둥, 목표 기둥이 어느 기둥이더라도 중간 기둥은 6-x-y로 구할 수 있습니다. 아래와 같은 과정을 재귀로 구현하면 됩니다. 1. 바닥 원반을 제외한 원반 그룹을 시작 기둥에서 중간 기둥으로 옮깁니다. 2. 바닥 원반 숫자를 시작 기둥에서 목표 기둥으로 옮겼음을 출력합니다. 3. 바닥 원반을 제외한 원반 그룹을..
큐(Queue)란? 스택과 마찬가지로 데이터를 일시적으로 쌓아 두기 위한 자료구조이다. 큐는 선입선출(FIFO)구조로 먼저 들어 온것이 먼저 나가는 방식이다. 큐에 데이터를 넣는 작업을 인큐(enqueue)라 하고, 데이터를 꺼내는 작업을 디큐(dequeue)라고 한다. 데이터를 꺼내는 쪽을 프런트(front)라 하고, 데이터를 넣는 쪽을 리어(rear)라고 한다. 아래 그림에서 보듯이 스택이 엎어져있다고 생각하시면 됩니다. 자바로 원형 큐 구현 소스 https://github.com/jokerKwu/java/blob/master/JavaStructure/src/Queue.java
배열 요소를 역순으로 정렬하는 방법 배열 요소 크기가 n사이즈라면 1. 첫 번째 인덱스인 0에 들어있는 값과 마지막 인덱스인 n-1에 들어있는 값을 서로 교환한다. swap(0,n-1) //교환 함수 2. 두 번째 인덱스인 1에 들어있는 값과 n-2에 들어있는 값을 서로 교환한다. swap(1,n-2) ...... 중간 인덱스가 될때까지 반복합니다. 그림을 통해 확인하겠습니다. 예제 소스 코드 결과 화면
자바에서 난수를 생성하기 위해서는 java.util. 패키지에 속한 Random 클래스를 사용해야 됩니다. 난수를 생성하는 단계를 요약해보면 1. Random 클래스를 간단한 이름으로 사용하기 위해 import 선언을 한다. 2. Random 클래스형의 변수를 만들기 위한 선언을 합니다. 3. 변수 rand에 대한 난수를 생성한하는 메서드 nextInt를 호출합니다. (nextInt(n)이 반환하는 값은 0부터 n-1까지의 난수입니다.) 컴퓨터에서 생성하는 난수는 진짜 난수가 아닙니다. 그 이유는 srand 메서드에 전달한 seed의 값과 컴퓨터 환경이 같다면 그 결과같은 항상 같습니다. 즉 컴퓨터에 의해 생성된 모든 난수는 미리 컴퓨터가 계산해 둔 의사난수입니다. 그래서 보통 일반적으로 항상 다른 수를..