본문 바로가기 메뉴 바로가기

chanmyung

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

chanmyung

검색하기 폼
  • 분류 전체보기 (15)
    • 자료구조 (1)
    • 알고리즘 (10)
      • 정렬 (4)
      • 백준 (3)
    • Java (1)
    • Springboot (0)
    • Node.js (0)
    • HTTP (1)
    • 프로젝트 (1)
    • JPA (1)
    • Git (0)
    • 소식, 생각정리 (0)
  • 방명록

알고리즘 (10)
[알고리즘] 힙 정렬(Heap Sort)

힙 정렬(HeapSort) 힙이란? http://devheat.tistory.com/12 참고 설명 힙의 최상위 노드에는 가장 큰 값이 존재한다는 특성을 이용해 정렬하는 알고리즘 최대 힙 혹은 최소 힙의 노드 삭제를 연속으로 수행해 값이 가장 큰 노드부터 내림차순 혹은 오름차순으로 꺼낼 수 있다. 구현 구현은 이전 포스팅 http://devheat.tistory.com/12 에서 만든 delete 메소드를 연달아 호출하면 된다. 최상위 노드를 꺼내고, 최하위 노드를 최상위에 위치시켜 다시 하향 heapify를 수행하는 것이 핵심 소스코드 번외 이전 포스트와 마찬가지로 Generic Heap에도 정렬 기능을 추가할 수 있다. 구현 힙 사용 예제 (Comparable을 구현한 String 클래스를 사용)

알고리즘/정렬 2018. 5. 2. 10:30
[알고리즘] 선택 정렬(Selection Sort)

선택 정렬(Selection Sort) 설명 오름 차순 기준 가장 작은 수의 인덱스를 찾아 현재 위치 인덱스의 값과 Swap한다. 한 사이클당 교환이 1회 이루어지므로 버블 정렬 보단 효율적이다. 동작 동작 예시 정수형 배열이 [5, 3, 2, 4, 1] 5개의 원소를 가질 때 오름차순 정렬 선형 탐색으로 가장 작은 값의 인덱스를 찾음 (인덱스 0 이상에서) 결과: 4 배열의 0번지의 값과 Swap [1, 3, 2, 4, 5] 선형 탐색으로 가장 작은 값의 인덱스를 찾음 (인덱스 1 이상에서) 결과: 2 배열의 1번지의 값과 Swap [1, 2, 3, 4, 5] 선형 탐색으로 가장 작은 값의 인덱스를 찾음 (인덱스 2 이상에서) 결과: 2 배열의 2번지의 값과 Swap [1, 2, 3, 4, 5] // ..

알고리즘/정렬 2018. 4. 30. 13:49
[알고리즘] 삽입 정렬(Insertion Sort)

삽입 정렬(Insertion Sort) 설명 오름차순의 경우 K번째 원소를 이전 원소와 비교하며 이전 원소가 K번째 원소보다 작을 때 까지 이전 원소를 다음 인덱스의 값으로 이동시킨다. 그 후 그 자리에 K번째 원소를 끼워 넣는다. 동작 동작 예시 정수형 배열이 [5, 3, 2, 4, 1] 5개의 원소를 가질 때 오름차순 정렬 인덱스는 1부터 시작 (이전 원소와 비교해야 하는데 0은 이전 원소가 없다.) 3과 5 비교, 밀어내기 O [5, 5, 2, 4, 1] 3을 0번지에 끼워 넣음 [3, 5, 2, 4, 1] 2와 5 비교, 밀어내기 O [3, 5, 5, 4, 1] 2와 3 비교, 밀어내기 O [3, 3, 5, 4, 1] 2를 0번지에 끼워 넣음 [2, 3, 5, 4, 1] 이를 반복 시간 복잡도 O..

알고리즘/정렬 2018. 4. 30. 12:22
[알고리즘] 정렬의 기초, 버블 정렬(Bubble Sort)

정렬의 기초, 버블 정렬(Bubble Sort) 설명 가장 직관적이고 대부분의 경우 가장 비효율적인 정렬 알고리즘 따라서 거의 쓰이지 않는다. 동작 구현에 따라 달라지지만 통상 가장 오른 원소부터 차례대로 자리를 찾아가게됨 자신과 자신의 다음 원소를 비교하고, Swap 여부를 결정 동작 예시 정수형 배열이 [1, 2, 4, 2, 5, 7, 1, 3, 9, 8] 10개의 원소를 가졌을 때 오름차순 정렬 시작: [1, 2, 4, 2, 5, 7, 1, 3, 9, 8] 1과 2 비교, Swap X [1, 2, 4, 2, 5, 7, 1, 3, 9, 8] 2와 4 비교, Swap X [1, 2, 4, 2, 5, 7, 1, 3, 9, 8] 4와 2 비교, Swap O [1, 2, 2, 4, 5, 7, 1, 3, 9,..

알고리즘/정렬 2018. 4. 30. 00:45
[알고리즘] 백준 온라인 저지 2108번 통계학

백준 온라인 저지 2108번 통계학 문제 문제 설명 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최대값과 최소값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절대값은 4,000을 넘지 않는다. 출력 첫째 줄에는 산술평균을..

알고리즘/백준 2018. 4. 29. 23:44
[알고리즘] 백준 온라인 저지 1181번 단어 정렬

백준 1181번 단어 정렬 문제 내용 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 해결 방법 Java8에 추가된 stream을 활용하면 간단하게 해결할 수 있다. 소스코드(38640 KB916 MS) 타인의 소스코드 (syntaxtree님, 39796 KB132 MS) 읽히는건 내 소..

알고리즘/백준 2018. 4. 28. 18:04
[알고리즘] 백준 온라인 저지 1427번 소트인사이드

백준 온라인 저지 1427번 소트 인사이드 문제 문제 내용 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 해결방법 문자열을 입력받아 .split("")로 각 글자별로 쪼갬 Arrays.sort(​T[] a, Comparator

알고리즘/백준 2018. 4. 28. 17:49
[자료구조, 알고리즘] 스택 계산기 - 3. 괄호가 있는 사칙연산 계산기

괄호가 있는 사칙연산 스택 계산기 문제 스택 계산기의 원리를 이용해 수식을 분해하고 계산하기 (괄호가 있는 사칙연산) 1. 식 분할 입출력 예시 입력 출력 ( 3 * 1 ) 3 1 * 7 / ( 4 * 6 ) 7 4 6 * / 1 + 2 ( 3 - 4 5 ) 1 2 3 4 5 - + 9 / 8 * ( 7 + 6 ) / 5 9 8 / 7 6 + * 5 / 설명 : 스택 자료구조를 이용해 식을 계산한다. 수식을 읽어들이고 수가 입력되면 그대로 출력, 연산자가 입력되면 스택에 push. 연산자가 스택에 저장된 상태에서 연산자가 입력된다면 둘의 우선순위를 비교해 결정한다. 새로 입력된 연산자가 괄호 열기 "("인 경우 pop 없이 push 새로 입력된 연산자가 괄호 닫기 ")"인 경우 괄호 열기 "("가 pop..

알고리즘 2018. 3. 20. 10:07
[자료구조, 알고리즘] 스택 계산기 - 2. 사칙연산 계산기

사칙연산 스택 계산기 문제 스택 계산기의 원리를 이용해 수식을 분해하고 계산하기 (사칙연산) 1. 식 분할 입출력 예시 입력 출력 3 * 1 3 1 * 7 / 4 * 6 7 4 / 6 * 1 + 2 3 - 4 5 1 2 3 + 4 5 - 9 / 8 * 7 + 6 / 5 9 8 / 7 * 6 5 / + 설명 : 스택 자료구조를 이용해 식을 계산한다. 수식을 읽어들이고 수가 입력되면 그대로 출력, 연산자가 입력되면 스택에 push. 연산자가 스택에 저장된 상태에서 연산자가 입력된다면 둘의 우선순위를 비교해 결정한다. 새로 입력된 연산자 우선순위 > 스택 속 연산자의 우선순위 pop 없이 push 그 외의 경우 스택 속 연산자를 pop 이를 반복 소스코드 StackCalculatorWithPriority.ja..

알고리즘 2018. 3. 20. 10:01
[자료구조, 알고리즘] 스택 계산기 - 1. 덧뺄셈 계산기

덧뺄셈 스택 계산기 문제 스택 계산기의 원리를 이용해 수식을 분해하고 계산하기 1. 식 분할 입출력 예시 입력 출력 3 + 1 3 1 + 7 + 4 - 6 7 4 + 6 - 1 + 2 - 3 - 4 + 5 1 2 + 3 - 4 - 5 + 9 + 8 - 7 + 6 - 5 9 8 + 7 - 6 + 5 - 설명 : 스택 자료구조를 이용해 식을 계산한다. 수식을 읽어들이고 수가 입력되면 그대로 출력, 연산자가 입력되면 스택에 push. 연산자가 스택에 저장된 상태에서 연산자가 입력된다면 스택을 pop해 연산자를 꺼내어 출력하고, 새로 입력된 연산자를 push 소스코드 2. 계산 입출력 예시 입력 출력 3 + 1 4 7 + 4 - 6 5 1 + 2 - 3 - 4 + 5 1 9 + 8 - 7 + 6 - 5 11 설..

알고리즘 2018. 3. 20. 09:47
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
Total
Today
Yesterday
링크
TAG
  • 스택 계산기
  • Java Heap
  • 정렬 알고리즘
  • 백준 온라인 저지
  • 우테캠
  • 스택
  • signme
  • uni direction
  • 우아한테크캠프
  • 단방향 연결
  • @Embdded
  • 자료구조 힙
  • 알고리즘
  • Java 스택 계산기
  • 붕어빵틀과붕어빵
  • 소프트웨어개발과
  • bi direction
  • 자료구조
  • JPA 관계
  • 양방향 연결
  • Entity에 VO
  • 자바 힙 구현
  • 전공프로젝트
  • 정렬
  • 백준
  • 클래스와 객체
  • Sign Me
  • 자료구조 Heap
  • @Embeddable
  • 붕어빵틀과 붕어빵
more
«   2025/07   »
일 월 화 수 목 금 토
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 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.