CS/Algorithm 3

[알고리즘] 하노이의 탑

하노이의 탑 (Towers of Hanoi) 재귀를 활용한 대표적인 알고리즘 문제로 하노이의 탑 문제가 있다. 하노이의 탑은 원하는 위치로 원판을 옮기는 문제다 하노이의 탑 : 작은 원반이 위에, 큰 원반이 아래에 위치할 수 있도록 원반을 3개의 기둥 사이에서 옮기는 문제이다. 모든 원반은 크기가 다르고 처음에는 모든 원반이 규칙에 맞게 첫번째 기둥에 쌓여있다. 이 상태에서 모든 원반을 세 번째 기둥으로 최소의 횟수로 옮기면 된다. 원반은 1개씩 옮길 수 있고 큰 원반을 작은 원반 위에 쌓을 수 없다. [원판을 옮길 때 제약사항] 맨 위에 있는 원판만 이동 가능 한 번에 하나씩만 이동 크기가 큰 원판 위에만 작은 원판 이동 가능 중간 막대를 이용할 수 있지만 다른 조건이 모두 만족해야 함 #include..

CS/Algorithm 2020.11.01

정렬(버블정렬, 삽입정렬, 퀵정렬, 병합정렬)

JUnit @Test 어노테이션을 통해서 단위테스트 진행 (이클립스에 있는 JUnit 라이브러리 이용. JUnit은 자바용 단위 테스트 툴.) 경로 : 프로젝트 > properties > Libraries > Add Library > JUnit Run as > JUnit Test 로 테스트 결과 조회. import static org.junit.Assert.*; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; //유닛테스트 활용 public class Test1 { //1...

CS/Algorithm 2019.01.22

빅오표기법

what is Big-O?Mathmatical notation that describes algorithm efficiency시간과 공간의 복잡도 표현 가능알고리즘의 실제 러닝타임을 표시하는 게 아니라, 데이터나 사용자의 증가에 따른 알고리즘의 성능을 예측하는 것이 목적. 상수와 같은 경우 1이 된다. 1. O(1) 알고리즘 public boolean f(int[] n){ return(n[0] == 0)? true : false; } 데이터가 증가함에 따라 성능의 변함이 없음 2. O(n) 알고리즘public void f(int[] n){ for(int i =0; i

CS/Algorithm 2019.01.21
반응형