lecture.js/algorithm.log17 #013 선택 정렬 # 문제) 아래와 같이 정렬되지 않은 배열이 있을때 선택 정렬을 사용하여 오름차순 정렬하여라. 5 2 4 3 1 선택정렬이란 오름차순 정렬의 경우, 처음 위치부터 시작하여 최소값을 찾아 첫 인덱스 값과 최소값을 swap 한다. 다음 단계에서는 두번째 인덱스부터 시작하여 최소값이 있는 인덱스를 찾아 swap한다. 계속 반복. *붉은 색은 최소값 인덱스 5 2 4 3 1 5 2 4 3 1 5 2 4 3 1 5 2 4 3 1 1 2 4 3 5 1 2 4 3 5 1 2 4 3 5 1 2 4 3 5 swap 일어나지 않음. 1 2 4 3 5 1 2 4 3 5 1 2 3 4 5 1 2 3 4 5 swap 일어나지 않음. package dataStructure.sort.selection; public class Se.. 2017. 7. 18. #012 버블 정렬 # 문제) 아래와 같이 정렬되지 않은 배열이 있을때 버블 정렬을 사용하여 오름차순 정렬하여라. 5 2 4 3 1 버블 정렬이란 인접한 두개의 원소끼리 비교하여 정렬해가는 방법을 말한다. O(n^2) 성능을 가짐. 먼저, 정렬이 진행되는 순서를 보며 규칙성을 찾아보자. 2 5 4 3 1 2 4 5 3 1 2 4 3 5 1 2 4 3 1 5 2 4 3 1 5 2 3 4 1 5 2 3 1 4 5 2 3 1 4 5 2 1 3 4 5 1 2 3 4 5 1회전이 완료되면 맨 마지막 원소는 정렬이 완료 됬다는 것을 알 수 있다. 즉, 정렬이 진행 되는 과정을 보면 회전 수가 진행 될 때마다 비교하는 횟수가 그에 맞게 감소하고 있는 것을 알 수 있다. package dataStructure.sort.bubble; pu.. 2017. 7. 18. #011 한글로 변환 #문제) 숫자를 한글로 변환하는 코드를 작성하여라 입력 : 2536 출력 : 이천오백삼십육 먼저 자리수에 대한 한글화, 숫자에 대한 한글화 배열을 만들어야한다. 기본적으로 한글로 출력하려면 먼저 자리수에 숫자에 대한 한글 변환, 자리수에 대한 한글변환이 이뤄지는 것을 알 수 있다. 또한, 0의 경우 한글화할 필요 없고, 첫번째 자리수는 한글화할 필요가 없다는 것을 알 수 있다. 구현방법은 먼저 자리수를 알아낸 후 자리수가 0보다 크거나 작을때까지 반복한다. 입력된 값을 자리수만큼 나누고 나눈 값을 이용해 한글화 처리를 한다. (배열 인덱스 접근) 또한 자리수를 이용해 한글화 처리를 한다. (자리수 배열 인덱스 접근) *자리수를 알아 내고 싶은데, String일 경우 length로 길이 알아 낸 후 Mat.. 2017. 7. 18. #010 소인수분해 #문제) 자연수 N을 입력받아 소인수 분해하여 그 결과를 출력하는 알고리즘을 제시하라. - 입력받은 정수 N이 2보다 작으면 알고리즘을 종료한다. - 입력받은 정수 N이 소수이면 '소수'라고 출력한다. - 입력받은 정수 N이 소수가 아니면 소인수 분해한 결과를 출력한다. - 132는 2 X 2 X 3 X 11 과 같이 소인수 분해된다. - 다양한 입력별 알고리즘의 실행 예시는 다음과 같다. 입력: 132 -> 출력: "2*2*3*11" 입력: 37 -> 출력: "소수" 입력: 20 -> 출력: "2*2*5" 입력: 0 -> 알고리즘 종료 소인수분해 할 결과를 저장 해야 하기 때문에 스택 사용이 필요하다. 그럼, 소인수분해 규칙을 살펴보자 먼저, 2부터 시작하여 N값을 %연산을 했을때 결과가 0인 경우, .. 2017. 7. 12. 이전 1 2 3 4 5 다음